特殊权限set_uid
权限s即为set_uid(给一个文件设置set_uid权限的前提是这个文件是二进制可执行文件)
[root@xie-02 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
chmod u+s /usr/bin/ls //给ls命令添加权限s,即当使用除root用户以外的用户时,有权限使用ls命令(使用u-s即可取消权限s)
chmod u=rws /usr/bin/ls //s权限会变为S,原因是因为没有x权限,所以加上x权限后会变为s
PS:权限为大写S的影响不大。
[root@xie-02 ~]# ls -l /usr/bin/ls
-rwxr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[root@xie-02 ~]# chmod u=rws !$
chmod u=rws /usr/bin/ls
[root@xie-02 ~]# ls -l /usr/bin/ls
-rwSr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
[root@xie-02 ~]# chmod u+x /usr/bin/ls
[root@xie-02 ~]# ls -l /usr/bin/ls
-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
特殊权限set_gid
set_gid作用于所有组
[root@xie-02 ~]# chmod g+s /usr/bin/ls
[root@xie-02 ~]# ls -l !$
ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
set_gid的作用:保证普通用户临时拥有该命令所属组的身份
chmod g+s /usr/bin/ls //给ls命令添加权限s,即所属组下的用户拥有所属组root的权限(使用u-s即可取消权限s)
chmod g+s test //作用于目录时,在该目录下创建的子目录和文件的所属组都会跟目录的所属组保持一致
[root@xie-02 ~]# ls -ld test
drwxr-xr-x. 2 root root 6 10月 25 16:25 test
[root@xie-02 ~]# chmod g+s test/ //给目录test加上set_gid权限
[root@xie-02 ~]# ls -ld test
drwxr-sr-x. 2 root root 6 10月 25 16:25 test
[root@xie-02 ~]# chown :xie test/ //更改目录所属组为xie
[root@xie-02 ~]# ls -ld test
drwxr-sr-x. 2 root xie 6 10月 25 16:25 test
[root@xie-02 ~]# touch test/1.txt //在该目录下创建文件1.txt
[root@xie-02 ~]# ls -l test/
总用量 0
-rw-r--r--. 1 root xie 0 10月 25 16:27 1.txt //文件的所属组与目录test一致
[root@xie-02 ~]# mkdir test/test1 //创建子目录test1
[root@xie-02 ~]# ls -l test/ //子目录test1的所属组与目录test一致
总用量 0
-rw-r--r--. 1 root xie 0 10月 25 16:27 1.txt
drwxr-sr-x. 2 root xie 6 10月 25 16:31 test1
[root@xie-02 ~]# chmod g-s test //取消目录test的set_gid权限
[root@xie-02 ~]# ls -ld test
drwxr-xr-x. 3 root xie 32 10月 25 16:31 test
[root@xie-02 ~]# touch test/2.txt //在目录test下创建文件2.txt以及子目录test2
[root@xie-02 ~]# mkdir test/test2
[root@xie-02 ~]# ls -l test/ //目录test在没有set_gid权限情况下,创建的文件和子目录所属组都为root
总用量 0
-rw-r--r--. 1 root xie 0 10月 25 16:27 1.txt
-rw-r--r--. 1 root root 0 10月 25 16:35 2.txt
drwxr-sr-x. 2 root xie 6 10月 25 16:31 test1
drwxr-xr-x. 2 root root 6 10月 25 16:35 test2
特殊权限stick_bit
stick_bit :防删除位,防止别的用户删除本用户创建的文件,root 除外
[root@xie-02 ~]# ls -ld /tmp/
drwxrwxrwt. 19 root root 4096 10月 25 12:22 /tmp/ //权限t为stick_bit
软连接文件
软连接文件通俗将就是相当于快捷方式
[root@xie-02 ~]# ls -l /bin
lrwxrwxrwx. 1 root root 7 10月 21 20:55 /bin -> usr/bin //软连接文件
ln -s 源文件 软连接文件 //可软连接文件也可软连接目录
ln -s /tmp/yum.log /root/yum.log //将目录tmp下的yum.log文件创建软连接文件到root目录下
PS:做软连接时尽量使用绝对路径,避免移动软连接文件时出现源文件不存在的情况
硬连接文件
PS:1.硬链接不支持对目录做硬连接,只支持对文件。
2.文件硬链接不能跨分区。因为分区之间有自己独立的inode体系(如boot分区下有inode号74的,根下也有inode74,因此会有冲突)
硬链接文件就相当于披了源文件的皮,跟源文件指向同一个inode号
硬链接命令用法: ln 源文件 硬链接文件
PS:软连接文件与硬链接文件的区别在于,软连接文件的源文件若被删除,软连接文件也会失效。而硬链接文件的源文件若被删除,硬链接文件不受影响