Linux文件特殊权限 SUID/SGID/Sticky Bit

http://tech.ddvip.com   2008年01月22日    社区交流

内容摘要:前面一直提到文件的重要权限,就是rwx这3个读、写、执行的权限。但是,怎么 /tmp权限有些奇怪? 还有,/usr/bin/passwd也有些奇怪,怎么回事呢?

  Set GID

  进一步而言,如果s的权限是在用户组,那么就是Set GID,简称为SGID。SGID可以用在两个方面。

  文件:如果SGID设置在二进制文件上,则不论用户是谁,在执行该程序的时候,它的有效用户组(effective group)将会变成该程序的用户组所有者(group id)。

  目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组。

  一般来说,SGID多用在特定的多人团队的项目开发上,在系统中用得较少。

  Sticky Bit

  这个Sticky Bit当前只针对目录有效,对文件没有效果。SBit对目录的作用是:“在具有SBit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除”。换句话说:当甲用户在A目录下拥有group或other的项目,且拥有w权限,这表示甲用户对该目录内任何人建立的目录或文件均可进行“删除/重命名/移动”等操作。不过,如果将A目录加上了Sticky bit的权限,则甲只能够针对自己建立的文件或目录进行删除/重命名/移动等操作。

  举例来说,/tmp本身的权限是“drwxrwxrwt”,在这样的权限内容下,任何人都可以在 /tmp内新增、修改文件,但仅有该文件/目录的建立者与root能够删除自己的目录或文件。这个特性也很重要。可以这样做个简单测试:

  1. 以root登入系统,并且进入 /tmp中。

  2. touch test,并且更改test权限成为777。

  3. 以一般用户登入,并进入 /tmp。

  4. 尝试删除test文件。

  更多关于SUID/SGID/Sticky Bit的介绍,我们会在第11章中再次提及,当前,先有简单的概念即可。

  SUID/SGID/SBIT权限设置

责编:豆豆技术应用

正在加载评论...