1. 特殊权限
1.1 特殊权限set_uid
set_uid可以让“执行该命令的用户临时拥有该命令所有者的权限”。
查看passwd命令的权限;
可以看到passwd命令的权限为“rwsr-xr-x”,可以看到root用户拥有读写和执行的权限,而普通用户只有读和执行的权限,而实际上,普通用户也可执行passwd命令来修改密码。
所以设置了set_uid的权限,它的标志是“s”,可以让普通用户在执行passwd命令时,临时拥有root用户的权限,从而修改密码。
对别的文件设置set_uid权限,如下:
可以看到ls命令也有了“s”权限,删除“s”权限执行命令。
如果使用“u=rws”命令,不会得到“s”权限,原因是没有“x”权限;
可以看到,加上“x”权限后,ls命令才会有“s”权限。
1.2 特殊权限set_gid
set_gid可以让“执行该命令的用户临时拥有该命令所有组的权限”。
当set_gid作用于目录上时,创建的子目录和子文件都将和该目录的所属组保持一致。例如:
当取消set_gid权限后,新创建的子目录和子文件并不会受到该目录所属组的影响。
1.3 特殊权限stick_bid
为了了解stick_bid权限的用法, 先看下tmp目录的权限;
[[email protected] ~]# ll -d /tmp
drwxrwxrwt. 32 root root 4096 3月 30 21:13 /tmp
可以看到/tmp目录对普通用户的权限是‘rwt’,‘t’这个权限位表示如果a用户在此目录下创建了文件,那么用户b就不能对该文件进行删除(root用户除外),只能对该文件进行创建和修改。‘t’权限位是针对目录的。
在yuioplv这个用户下创建一个名为yuioplv的文件;
在yu这个用户下去删除该文件,提示“不允许的操作”。
[[email protected] tmp]$ ll
总用量 0
drwxrwxr-x 2 yuioplv yuioplv 6 3月 31 00:45 ll
drwx------. 3 root root 17 3月 20 07:50 systemd-private-0aeaad95fcee44b3a28b619ddcfedd8f-chronyd.service-45s7eP
-rw-rw-r-- 1 yuioplv yuioplv 0 3月 31 00:50 yuioplv
[[email protected] tmp]$ rm -f yuioplv
rm: 无法删除"yuioplv": 不允许的操作
2. 软链接文件
软链接文件类似于Windows的快捷方式,文件实质上是一个文本,其中包含的有另一文件的位置信息。
查看/lib目录,实际上lib目录的位置为:usr/lib;
[[email protected] ~]# ll /lib
lrwxrwxrwx. 1 root root 7 3ÔÂ 20 07:39 /lib -> usr/lib
也可以自定义软链接文件,可以对文件和目录做软链接。
一般要将软链接文件放在绝对路径。
3. 硬链接文件
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。
对同一个文件创建硬链接和软链接,可以看到硬链接文件与源文件,创建时间等信息完全相同;
查看inode信息,硬链接文件与源文件(互为硬链接)inode信息一致;
删除源文件,硬链接文件不受影响,软链接文件则会报错。
需要注意的是,硬链接只对文件有效。多个硬链接文件不会占用多个内存,因为它们的inode信息一致,实际上就是同一文件。