学习了上两节普通权限和ACL权限之后,我们来看一下Linux中的特殊权限
一、SUID
使用SUID权限的几点说明:
- 只针对可执行的二进制程序文件,记住可执行和二进制文件两个重点,shell脚本不能设置SUID权限;
- 执行者对文件具有x权限,即可执行权限,这里的执行者对于文件而言一般是其他人的身份;
- 在执行过程中,执行者临时获取执行文件所有者的身份;
- 这个身份的转换只在执行过程中有效
设置的方法:
使用chmod命令,chmod 4755 file,最前面的4就是设置文件的SetUID权限,后面的755是设置普通rwx权限操作。设置成功后,使用ls -l查看,在所有者的权限位由原来的rwx,变成rws。
取消的方法:
chmod 755 file,这样就取消了特殊权限的设置。
最后做一个实验来加深下理解:
实验:普通用户是无法通过vim来阅读/etc/passwd文件的,下面我们就着手让普通用户可以阅读/etc/passwd文件
---->whereis vim #看一下vim命令的位置vim: /usr/bin/vim
---->chmod 4755 /usr/bin/vim #给vim设置SUID权限,这样普通用户在使用vim命令时,就拥有vim所有者,即root的身份
---->切换普通用户使用vim来读写一切文件了,最后别忘了把vim改回来,不然很危险。
二、SetGID
使用SGID的几点说明:
- 只针对可执行的二进制程序文件;
- 执行者对文件具有x权限,即可执行权限;
- 在执行过程中,执行者临时获取执行文件所属组的身份;
- 这个身份的转换只在执行过程中有效
设置的方法:
chmod 2755 file,注意SUID是4,SGID用2表示
三、SBIT粘着位权限
使用的几点说明:
- 只对目录有效
- 普通用户对该目录拥有wx权限
- 设置该权限后,普通用户只能删除自己建立的文件,不能删除其他人建立的文件
设置的方法:
chmod 1770 filename,用1来表示