独角兽企业重金招聘Python工程师标准>>>
2.18特殊权限set_uid
权限的标准写法是4位数,第1位表示特殊权限。
该权限仅针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。比如passwd这个命令就具有suid权限。当普通用户执行该命令时,可以临时获得root权限,从而修改密码。
从上图得知,passwd的权限是rws,而非rwx,这表明它具有suid权限。
自定义一个suid权限
用户user1去查看root目录,失败。因为user1用户在root用户下没有权限。给ls命令增加一个suid权限,让user1用户在执行ls命令时,临时获得root用户的权限,操作如下:
有时候可能会看到rwSr-xr-x这样的权限里,s变成了大写的S,这是由于所有者没有执行权限。但是由于具有的s权限本身具有执行的功能,所以,一样可以使用命令。
2.19特殊权限set_gid
该权限可以应用在文件和目录上。设置在文件(可执行的二进制文件)上,作用和suid类似。当设置sgid的权限后,执行该文件的用户,会临时以该文件所属组的身份执行。若目录被设置该权限后,任何用户在此目录下创建的文件或目录,都具有和该目录所属组相同的组。注意:给/tmp/cc1目录设置sgid权限后,权限由原来的drwx rwx rwx变为drwx rws rwx。此时以user1的身份在/tmp/cc1目录里创建新目录和新文件,其所属组都为root,而不是user1。
2.20特殊权限stick_bit
防删除位。一个文件是否可以被某用户删除,主要取决于该文件所在目录是否具有写权限。如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新的文件或目录。
如果希望用户能够添加文件,但同时不能删除该目录下的其他用户的文件,则可以对该你目录增加该权限。设置它后,就算用户对目录具有写权限,也不能删除其他用户的文件。
/tmp/目录就具有防删除位,即sticky_bit权限。
ls -ld /tmpdrwxrwxrwt. 13 root root 4096 8月 11 04:51 /tmp
其中的 rwt 就表示该目录具有sticky_bit权限。
[root@greenfinch /]# su - user1上一次登录:五 8月 11 04:46:20 CST pts/0 上[user1@greenfinch ~]$ touch /tmp/user1.txt[user1@greenfinch ~]$ echo "121" > /tmp/user1.txt[user1@greenfinch ~]$ echo "121" > /tmp/user1.txt[user1@greenfinch ~]$ exit[root@greenfinch /]# su - user2[user2@greenfinch ~]$ rm -f /tmp/user1.txtrm: 无法删除"/tmp/user1.txt": 不允许的操作[user2@greenfinch ~]$ ls -ld /tmp/user1.txt-rw-rw-r--. 1 user1 user1 4 8月 11 05:18 /tmp/user1.txt
/tmp/目录的权限是777,可写、可读、可执行。但上面这个实验却表明,user2是不可以删除user1的文件的,这是因为/tmp/目录有一个特殊权限stick bit(防删除位)在起作用。
特殊权限的设置方法suid,格式:chmod u±s filenameguid,格式:chmod g±s dirnamesticky_bit,格式:chmod o±t dirname
2.21软链接文件
软链接(symbolic link)的命令:ln [-s] [来源文件] [目的文件] (-s表示创建软链接)注:为安全起见,软链接必须以绝对路径指向文件或目录。
2.22硬链接文件
硬链接(hard link)的命令:ln [来源文件] [目的文件]
软链接和硬链接的区别:
硬链接和原来的文件没有什么区别,而且共享一个 inode 号(文件在文件系统上的唯一标识);而软链接不共享 inode,也可以说是个特殊的 inode,所以和原来的 inode 有区别。
若原文件被删除,则该软链接失效,而硬链接是正常的。
软链接的指向,可以跨越磁盘分区,但硬链接不能。
硬链接不能用于指向目录,而软链接可以。