Linux中有一个存放临时文件的目录/tmp(类似于Windows中的temp目录),每个用户产生的临时文件都存放在此目录下,也就是说每个用户对/tmp目录都应该有写权限(否则无法拷贝生成文件),这样造成一个问题,比如,小王在/tmp目录下创建了一个文件,小张看着不爽就可以删掉,这如何控制? 其实,这种情况永远都不会发生,因为/tmp目录有一个特殊的权限标记:
#ls -ld /tmp
drwxrwxrwt 5 root root 4096 May 24 13:55 /tmp
瞧见那个rwx权限最后的“t”了没,那个神奇的“t”就是粘着位t(有的资料中文也称为粘滞位),是Linux特殊权限中的第三个(另外两个是SetUID和SetGID),定义为:权限为777的目录设置粘着位t以后,具有写权限每个用户都可以在目录下创建文件,不同的是每个用户只能删除自己是所有者的文件,也就是说只能删除自己创建的文件。
如何给一个目录赋上这个权限?
chmod o+t /test # 追加t权限
或 chmod 1777 /test #在777权限基础上再加上t权限
那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
为系统安全,此目录可不赋予执行权限,但读写权限不能禁止,否则会影响用户登录。
chmod -R 1666 /tmp
本文转自 艺晨光 51CTO博客,原文链接:http://blog.51cto.com/ycgit/1406909,如需转载请自行联系原作者