set uid
set uid : 作用于二进制可执行文件,功能:使有该权限的文件在执行阶段临时拥有文件所有者的权限
二进制可执行文件:一般的,命令所在的文件是二进制可执行文件。如:ls 命令所在的文件/usr/bin/ls
如果不认为设置,基本上我们系统只有一个文件是有set uid 这个权限的。就是passwd 命令所在的文件/usr/bin/passwd
[root@shuai-01 ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd
怎么设置一个set uid 权限
给ls 命令所在的文件/usr/bin/ls加个set uid 权限
[root@shuai-01 ~]# chmod u+s /usr/bin/ls
去掉set uid 权限
[root@shuai-01 ~]# chmod u-s /usr/bin/ls
只有root用户才能更改这几个特殊权限
set gid
set gid : 作用于文件上,使有该权限的文件在执行阶段临时拥有文件所属组的权限。作用于目录上,有这个权限后,任何用户在这个目录下创建的文件或目录都具有和该目录的所属组一样。
设置一个set gid 权限
给deng目录加一个set gid 权限
[root@shuai-01 ~]# chmod g+s deng
[root@shuai-01 ~]# ls -ld deng
drwxrwsr-x. 2 root root 6 10月 25 23:30 deng
去掉set gid 权限
[root@shuai-01 ~]# chmod g-s deng
stick_bit
stick_bit:防删除位,防止别的用户删除自己的文件
一个文件或目录能被删除,不是取决于该文件和目录本身是否有可写权限,而是取决于上一级目录(父目录)是否有可写权限
设置stick_bit权限:
[root@shuai-01 ~]# chmod o+t deng
但是总感觉没什么用,因为只是不允许其他用户删除,其他用户还是可以更改文件的内容。
软连接
软连接:类似于一种快捷方式,能占用少的存储空间,当一个文件或目录在不同的地方被多次使用时,用软连接能更方便的使用。(即支持对文件,又支持对目录,还能跨分区)
做一个软连接:
将/root/deng/shuai目录连接到/tmp/shuai目录下
[root@shuai-01 ~]# ln -s /tmp/shuai/ /root/deng/shuai/
左边是原文件,真正存在的文件,右边是做的软连接。
做软连接时,要使用绝对路径,不使用相对路径,相对路径容易弄乱。
案例:
一个文件/var/shuai.log在不停的写,导致/var目录空间不足,服务不能断,写不能停。这时就只有将/var/shuai.log文件复制到另一大分区下,删除这个目录,在做一个软连接过来。
一般删除命令之后立马要接软连接命令
[root@shuailinux-01 ~]# cp /var/shuai.log /tmp/shuai.log ; rm /var/shuai.log ; ln -s /tmp/shuai.log /var/shuai.log
硬链接
对文件做硬链接,使用同一个iNode号,说白了,就是两相同的文件。只能对文件做硬链接(并且在同一分区)
做硬链接:
将1.txt 和2.txt 做硬链接
[root@shuai-01 ~]# ln 1.txt 2.txt
这是文件具有相同的iNode号