今天无意间发现/tmp的权限很特殊,如下:
最后的rwx变成了rwt,于是在网上找了找资料,发现linux有两个特殊权限。
s或S(SUID,Set UID):有这个标记的文件在执行时,该进程拥有文件所有者的权限。典型如passwd
-rwsr-xr-x 1 root root 42856 2011-02-15 06:11 /usr/bin/passwd
任意用户执行它时,进程都会拥有passwd的所有者root的权限。
s或S(SGID,Set GID):和Set UID类似,只不过把用户换成了用户组。
t或T(Sticky):Sticky bit,中文一般翻译为粘滞位。有这个标记的目录,其中的文件只能被文件所有者和root删除。
因为SUID、SGID、Sticky占用x的位置来表示,所以在表示上会有大小写之分。同时开启执行权限和SUID、SGID、Sticky,则权限表示字符是小写的:
-rwsr-sr-t 1 root root 4096 6月 23 08:17 conf
如果关闭执行权限,则表示字符会变成大写:
-rwSr-Sr-T 1 root root 4096 6月 23 08:17 conf
如果要变更特殊权限,要使用4位数字,其中第一位数字表示特殊权限。
SUID:4
SGID:2
Sticky:1
如:chmod 1777 testing
则testing的权限变为: rwxrwxrwt