2.18 特殊权限set_uid


权限s,set_uid,除了所有者之外的用户,执行的一瞬间临时拥有所有者权限;

文件要满足是二进制可执行文件;

用户密码文件/etc/shadow

文件加set_uid权限#chmod u+s /usr/bin/ls

ls -l查看权限可以看到,rws权限;红色显示文件

文件减set_uid权限#chmod u-s /usr/bin/ls

文件加set_uid权限,另外一个方法#chmod u=rws /usr/bin/ls

ls -l查看权限可以看到,rwS权限;

如果其他用户本身具有执行权限,就已经具有set_uid权限;

如果没有执行权限,加x权限#chmod u+x /usr/bin/ls

ls -l查看权限可以看到,rws权限,S转为s;

目录无需设置set_uid权限,因目录仅是一个路径,本身可执行;


2.19 特殊权限set_gid


s,set_gid,添加所属组权限,所属组下其他用户都有此权限

文件所属组加s权限,#chmod g+s /usr/bin/ls 文件变为×××标记

目录所属s权限,#chmod g+s 234,之后再此目录创建文件或目录,所属组会和set_gid目录保持一致;如果目录不设置set_gid,会和当前用户保持一致;


2.20 特殊权限stick_bit


stick_bit,防删除位,目的是为了防止被别的用户删除;/tmp目录默认拥有此权限;

/tmp目录, 系统的临时文件目录,所有的用户在该目录下拥有所有的权限,也就是说在该目录下可以任意创建、修改、删除文件,那如果用户A在该目录下创建了一个文件,用户B将该文件删除了,这种情况我们是不能允许的。为了达到该目的,就出现了stick bit(粘滞位)的概念。它是针对目录来说的,如果该目录设置了stick bit(粘滞位),则该目录下的文件除了该文件的创建者和root用户可以删除和修改 . /tmp目录下的文件/目录,均不能动别人的,这就是粘滞位的作用。

/tmp下,创建文件aming,#touch aming

用户aming,设置aming文件权限,#chmod 777 aming

其他用户,删除aming文件,#rm -f aming不允许删除

其他目录777权限,目录下文件和目录,其他人也可删除,和文件与子目录权限无关,和父目录权限有关;

设置目录stick_bit,命令为#chmod o+s 目录;


2.21 软链接文件


软链接,相当于windows快捷方式,一个路径;软链接文件大小和路径长短有关;

设置软链接 ,格式为#ln -s 源文件 软链接文件 

例如,#ln -s /tmp/yum.log /root/111/yum.log

查看软链接文件,会显示,软链接文件->源文件;

软链接应用:

         查看磁盘分区,#df -h

         /boot分区快满了,写的文件和日志/boot/aming.log,满的话会引起系统崩溃;

         复制文件到其他分区,#cp /boot/aming.log /aming.log

         删除原文件,#rm /boot/aming.log 

         创建软链接文件,#ln -s /aming.log /boot/aming.log

         软链接支持文件、目录、跨分区;


2.22 硬链接文件


硬链接,不支持目录,inode号,只支持对文件做硬链接;硬链接不支持跨分区,每个分区都有inode号;

设置硬链接,#ln 1.txt 1_heard.txt

硬链接,源文件和硬链接文件,文件大小相同,使用相同inode号,两个文件相互为硬链接文件,不占用双份空间,相当于一张皮,共两张皮;

硬链接删不删除,不受影响;软链接,删除源文件,软链接文件会出错;