suid,sgid,sticky bit简介

三种特殊权限简介
SUID

当一个设置了SUID 位的可执行文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权。

如果所有者是 root 的话,那么执行人就有超级用户的特权了。

SGID

当一个设置了SGID 位的可执行文件运行时,该文件将具有所属组的特权, 任意存取整个组所能使用的系统资源。

若一个目录设置了SGID,则所有被复制到这个目录下的文件, 其所属的组都会被重设为和这个目录一样,除非在复制文件时加上-p (preserve,保留文件属性)的参数,才能保留原来所属的群组设置。

sticky-bit

对一个文件设置了sticky-bit之后,尽管其他用户有写权限, 也必须由属主执行删除、移动等操作。

对一个目录设置了sticky-bit之后,存放在该目录的文件仅准许其属主执行删除、 移动等操作。


假设要将一个文件属性改为“-rwsr-xr-x”,由于s在用户权限中,所以是SUID, 因此,在原先的755之前还要加上4,也就是使用“chmod 4755 filename”来设置。此外,还有大S与大T的产生。参考下面的范例(注意:下面的范例只是练习而已,所以笔者使用同一个文件来设置,必须知道, SUID不是用在目录上,SBIT不是用在文件上)。


[root@linux ~]# cd /tmp
[root@linux tmp]# touch test
[root@linux tmp]# chmod 4755 test; ls -l test
-rwsr-xr-x 1 root root 0 Jul 20 11:27 test
[root@linux tmp]# chmod 6755 test; ls -l test
-rwsr-sr-x 1 root root 0 Jul 20 11:27 test
[root@linux tmp]# chmod 1755 test; ls -l test
-rwxr-xr-t 1 root root 0 Jul 20 11:27 test
[root@linux tmp]# chmod 7666 test; ls -l test
-rwSrwSrwT 1 root root 0 Jul 20 11:27 tes

# 这个例子要特别小心。怎么会出现大写的S与T呢?不都是小写的吗?

# 因为s与t都是取代x参数的,但是,我们是使用

# 7666。也就是说,user、group以及others都没有x这个可执行的标志

# (因为666)。所以,S、T表示“空的”。

# SUID是表示“该文件在执行时,具有文件拥有者的权限”,但文件

# 拥有者都无法执行了,哪里来的权限给其他人使用呢?当然就是空的


猜你喜欢

转载自chuanzhongdu99.iteye.com/blog/1306821