Linux下文件特殊权限

SUID
SUID表示在所有者的位置上出现了s
在一个命令的所有者的权限上如果出现了s,当其他人在执行该命令的时候将具有所有者的权限。
SUID权限仅对二进制文件有效

SGID表示在组的位置上出现了s
如果一个目录的组的权限上出现了s,那么该目录下所有的文件或者目录都会继承此目录所属组
如果一个二进制文件的组的权限上出现了s,那么与SUID类似,当其他人在执行该二进制文件的时候,获得该用户组的权限。

SBIT
SBIT只能分给一个目录other对应的权限上
如果一个目录的other的权限上出现了t,这个目录里面的东西除了所有者和root之外,其他用户都是不能删除

假设有数字A,A的值只可以取4,2,1,有如下命令 chmod A644 文件或目录,A取不同值,则表示如下意思
如A=4,则是在一个命令的所有者的权限上赋值S
如A=2,则是在一个目录的组的权限上赋值S
如A=1,则是在一个目录的other的权限上赋值t

上面所说的权限都是出现在文件或者目录权限的X位置上。

如果执行如下命令 chmod 7666 test;ls -l test
则会得到如下结果:-rwSrwSrwT 1 root root ……
为什么这里会出现大写,因为原本的赋值都是666,没有x权限,用户本身自己都不具有x的执行权限了,所以其他人也无法使用了,都为空了。

总结:

  • 文件具有SUID的特殊权限时,代表当使用者运行此一binary程序时,在运行过程中使用者会暂时具有程序拥有者的权限
  • 目录具有SGID的特殊权限时,代表使用者在这个目录底下新建的文件之群组都会与该目录的群组名称相同。
  • 目录具有SBIT的特殊权限时,代表在该目录下使用者创建的文件只有自己与root能够删除!
posted @ 2016-02-20 23:16  YiYezc  阅读(212)  评论(0编辑  收藏  举报