本文共 2198 字,大约阅读时间需要 7 分钟。
当我们查询/usr/bin/passwd的权限的时候会发现,出现了一个s权限,这个s权限就是我们所讲述的;
[root@shu-test ~]# ls -l /usr/bin/passwd-rwsr-xr-x. 1 root root 27832 6月 10 2014 /usr/bin/passwd[root@shu-test ~]#
由于每个用户都需要使用passwd命令来修改密码,那么就需要所有用户都拥有这个文件的权限,也就是(所有者);
而这个文件的所有者却是ROOT账号与root组;此时我们就会使用一个特殊权限来赋予它,也就是s权限;set_uid命令:可以使普通用户临时赋予root权限,但是对象必须是可执行的二进制文件;[user01@shu-test root]$ whoamiuser01[user01@shu-test root]$ ls /root/ls: 无法打开目录/root/: 权限不够[user01@shu-test root]$ ls -ld /root/dr-xr-x---. 8 root root 256 12月 20 21:13 /root/[user01@shu-test root]$
此时我们会发现/root/目录的权限所有者为root,其他用户user01根本无法操作;
那么我们就需要使用root账号给ls命令赋予s权限:chmod u+s [路径][root@shu-test ~]# chmod u+s /usr/bin/ls[root@shu-test ~]# ls -l /usr/bin/ls-rwsr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls[root@shu-test ~]#
再在user01账号下ls下/root/目录,我们会发现可以查看/root/目录了;
[user01@shu-test root]$ ls /root/abc anaconda-ks.cfg awk grep sed
取消s权限:
格式:chmod u-s [路径]chmod u-s /usr/bin/ls[root@shu-test ~]# chmod u-s /usr/bin/ls
set_gid
使其临时具备所有组的权限首先查看权限,普通用户无法ls /root/目录下的文件;[user01@shu-test root]$ ls -ld /root/dr-xr-x---. 8 root root 256 12月 20 21:13 /root/[user01@shu-test root]$ ls -l /root/ls: 无法打开目录/root/: 权限不够[user01@shu-test root]$
我们通过root账号赋予ls命令拥有所属组来查看
chmod g+s [路径][root@shu-test ~]# chmod g+s /usr/bin/ls[root@shu-test ~]# ls -ld /usr/bin/ls-rwxr-sr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls
再切换到普通用户user01来ls /root/看看
[user01@shu-test root]$ ls /root/abc anaconda-ks.cfg awk grep sed[user01@shu-test root]$
取消权限(在root下取消)
chmod g-s [路径][root@shu-test ~]# chmod g-s /usr/bin/ls[root@shu-test ~]# ls -ld /usr/bin/ls-rwxr-xr-x. 1 root root 117656 11月 6 2016 /usr/bin/ls[root@shu-test ~]#
切换到普通用户下查看:
[user01@shu-test root]$ ls /root/ls: 无法打开目录/root/: 权限不够[user01@shu-test root]$
防止其他用户删除文件;
/tmp/ 下可被其他用户编辑,无法删除其他用户的文件;使用普通用户user01在/tmp/下创建一个文件,给文件777权限;
[user01@shu-test tmp]$ touch 1.txt[user01@shu-test tmp]$ vi 1.txt[user01@shu-test tmp]$ chmod 777 1.txt[user01@shu-test tmp]$ ls -ld 1.txt-rwxrwxrwx. 1 user01 user01 7 12月 21 16:21 1.txt
切换到普通用户user02,此时我们发现可以user02可以编辑1.txt文件,但是无法删除1.txt;
[user02@shu-test tmp]$ rm 1.txtrm: 无法删除"1.txt": 不允许的操作[user02@shu-test tmp]$
转载于:https://blog.51cto.com/shuzonglu/2052988