2.18 特殊权限 set_uid
2.19 特殊权限 set_gid
2.20 特殊权限 stick_bit
2.21软链接
2.22硬链接
set_uid & set_ gid (前者可临时赋予普通用户该命令所有者的权限;后者可以赋予用户组该命令所属用户组的权限,并在普通用户模式下访问,更改用户组)
ls -l /usr/bin/passwd (红色)
-rwsr-xr-x. 1 root root (s为set权限)
改密码命令: ls /etc/shadow ---------
passwd 有set_uid权限,当普通用户使用该命令时可以临时拥有root用户权限 (前提是二进制可执行文件)
e.g. ls -l /usr/bin/ls 给ls命令加set_uid权限
su - file_name (切换普通用户命令)
e.g. su -liut ls /root/ 权限不够,加set_uid 权限即可
chmod u+s /usr/bin/ls 再执行 ls /root/可访问,临时获得root用户权限
chmod u-s /usr/bin/ls
chmod u=rws /usr/bin/ls ( S权限,无x权限)
chmod u+x /usr/bin/ls
set_gid
chmod u+g /usr/bin/ls (黄色)
chown :usr1 file-name/liut
总结:set_gid 作用在子目录下的子文件和子目录所属组会跟着所创建的set_gid的所属组权限保持一致,去掉s权限则回到原所属用户组。
set_gid 作用在子文件上会把原所属组权限临时赋予当前用户所属组
stick_bit
ls -ld /tmp/ (777权限)
drwxrwxrwt. 11 root root 最后一位t即stick_bit(防删除位)
如 usr1创建的文件可让usr2看,改,但是无权限删除
知识点:删除文件所在目录是否有写得权限,而不是看文件本身的权限
软链接(节省磁盘空间)
文件实际指向为绝对路径,如下图所示
ln -s 软链接命令
e.g. 如下图,如果文件123/22.txt只存在于root目录下,但是某程序必须在/tmp/下找到该文件,可做软链接,无需因为文件更新而重新复制
如给yum.log做软链接操作,左边为源文件,右边为软链接文件
除文件外,软链接还可以链接目录
在同一个目录下可使用相对路径创建软链接
相对路径出现的问题:因为本次软链接是相对路径下进行的,而该目录下无软链接文件,因此闪烁红色报错,如果在当前目录下touch一个软链接文件,则恢复正常,如下图所示
即使移动源文件也不会报错,因为前面做的软链接 /tmp/yum.log 为绝对路径
df - h 查看磁盘分区命令;
补充:如果某分区中文件,如日志在不停写入,而该分区空间不足,而且某进程或服务必须在该分区调用该文件时(不改变路径),可用如下方法避免系统因磁盘空间不足的报错:
实际源文件是/liut.log,因为做了软链接,读取的路径还是/boot/liut.log不变
硬链接(只支持文件,不可跨目录)
硬链接为大小和源文件一致,软链接则很小
硬链接后删除源文件不影响,硬链接相当于多一个文件指向同一个iNode号(真正记录文件属性),它也不会占双份空间(相当于一张皮),软链接后删除源文件则影响。