除了我们前面介绍的rwx权限外,Linux中还有另外三种特殊权限:SUID,SGID,SBIT
一、SUID,SGID,SBIT介绍
1.SUID:s出现在文件所有者的x权限上。
1)SUID只能用于二进制可执行文件,对目录无效
2)执行者若具有该文件的x权限,则将具有文件所有者的权限
3)权限只在文件执行时有效,执行完毕不再拥有所有者权限
2.SGID:s出现在文件所属群组的x权限上。
SGID和SUID不同,可以用于目录
1)使用者若有此目录的x,w权限,则可进入和修改此目录
2)使用者在此目录下的群组将变成该目录的群组,新建的文件,群组是此目录的群组。
SGID对于文件来说
1)SGID只对二进制可执行文件有效
2)执行者若具有该文件的x权限,则将具有文件所属群组的权限
3)权限只在文件执行时有效,执行完毕不再拥有所属群组权限
3.SBIT:t出现在文件其他用户的x权限上。
1)和SUID,SGID不同的是,只能用于目录
2)使用者在该目录下,仅自己与root才有权力删除新建的目录或文件
二、为什么要使用特殊权限
举个例子,比如 /usr/bin/passwd 这个二进制文件。
它的权限是 -rwsr-xr-x ,我不是所有者,我具有"x"权限,我执行它时,获得了它的所有者(即root)的权限,
所以在该二进制程序执行时,我可以用它来读到我平时是没有权限访问的 /etc/shadow 文件(-r--------),从而能更改我自己的密码
三、修改SUID,SGID,SBIT权限
1.符号类型修改权限
chmod u+s test --为test文件加上suid权限
chmod g+s test --为test文件加上sgid权限
chmod o+t test --为test文件加上sbit权限
2.数字类型修改权限
我们知道普通文件的rwx权限修改
对于特殊权限,需要在最前面增加一位,SUID:4,SGID:2,SBIT:1
chmod 4777 test --test拥有SUID权限,rwsrwxrwx
chmod 2777 test --test拥有SGID权限,rwxrwsrwx
chmod 1777 test --test拥有SBIT权限,rwxrwxrwt