Linux中的特殊权限 SUID SGID SBIT
文件的特殊权限 SUID SGID SBIT
当 s 出现在拥有者的 x(执行权限) 权限位置时候,表示拥有者有SUID的权限(Set UID)
当 s 出现在所属组的 x(执行权限) 权限位置时候,表示所属组有SGID的权限(Set GID)
当 t 出现在其他人的 x(执行权限) 权限位置时候,表示其他人有SBIT的权限(Sticky Bit)
SUID,临时获取文件拥有者的权限—只能针对文件 (比如一个普通用户需要修改自己的密码,但是修改密码必须要调用到 /usr/bin/passwd 目录下的这个 passwd 文件,但是如上图得知 /usr/bin/passwd 的拥有者的权限是 root , 但是普通用户又要修改自己密码 , 所以可以通过 SUID 来临时获取拥有者的权限 , 来修改自己的密码)
SGID,即使可以作用于目录,也可以作用于文件
作用于文件:SUID一样 (作用于文件时则是临时获取所属组的权限)
作用于目录:继承父集目录—目录会不停的继承 (继承自目录如上图 , 每创建一个子目录 , 则子目录还是会获取所属组的权限)
比如拿 /tmp/ 临时文件的文件夹来说吧, /tmp/ 文件夹的 其他人 拥有 t , 则其他人拥有 SBIT 权限 , 然后切换到 lewis 用户后在 /tmp/ 目录下 touch 一个 123的文件 , 查看 123文件的属性 , 则只有123文件的拥有者(上图是 lewis)才能删除 , 修改该文件.
SBIT指的是,只有文件的拥有者,才能删除,修改该目录下的文件—只能针对目录,只能在其他人的位置上进行修改
将上图的 lewis1.dir 文件夹的 d rwx r-s r-x 的 s(小写) 使用chmod g-x 拿走 x 权限 , 则 s(小写) 就改变成 S(大写) 的,则 lewis1.dir 就没有了 x(执行) 权限的.
也可以使用数字的的方式来设置 SUID 或 SGID 或 SBIT 的权限 , 比如我想设置上图的 lewis1.dir 文件夹有 SUID 的权限则 chmod 4777 lewis1.dir/ 即可 , 第一个 4 表示 SUID , 若第一个数字为 2 则是 SGID 的权限 , 若第一个数字为 1 则是 SBIT 的权限.
S和T都有大写和小写之分
大写说明:没有 x 权限
小写说明:有 x 权限
SUID=4 SGID=2 SBIT=1
转载自 : 51自学网