linux附加权限

linux除了正常的rwx权限外,还有一类附加权限。即:SET位权限(suid、sgid)&粘滞位权限(sticky)

SET位权限

set位权限(suid、sgid)是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的,一般用于给可执行的文件设置。设置了suid后,任意用户执行文件时,将获得该文件owner的身份;设置了sgid后,任意用户执行文件时,将获得该文件group的身份。例如:passwd命令就使用了suid,用户执行passwd命令时,以root用户的身份执行。

表现形式

一个文件被设置了suid或者sgid位,会分别表现在所有者或同组用户权限的可执行位上。如果设置了suid且设置了可执行x,则可执行位会表现为s(而不是x);如果设置了suid但没有设置可执行x,则可执行位会表现位S(而不是-)。sgid也类似。

eiuVu4.png

设置方法

通过chmod命令,设置set位权限。

eiu08f.png

粘滞位权限

粘滞位权限一般用于目录。目录设置了粘滞位权限后,即使用户拥有对该目录的写权限,也不可以删除目录下其他用户的文件。例如:linux的/tmp目录就设置了粘滞位权限。

表现形式

一个目录设置了粘滞位,会表现在其他用户权限的可执行位上。类似set位权限,如果设置了粘滞位权限且设置了可执行x,则可执行位会表现为t(而不是x);如果设置了粘滞位权限但没有设置可执行x,则可执行位会表现位T(而不是-)。

eiu5xU.png

设置方法

使用chmod命令,设置粘滞位权限。(chmod +t xxx目录)