什么是粘滞位?
一个系统一般都是有多个账号使用的,而有些目录和文件需要赋予其他用户可读写的权限,比如/tmp/a.tmp,这就有一个问题了,比如A在/tmp目录下放的文件a.tmp,而B也需要有/tmp的权限,他就可以删除这个a.tmp文件;如果只想让b有读写这个文件的权限,但是没有删除这个文件的权限该怎么办呢?这个时候就引入了粘滞位,也就是让用户只能删除属于自己的文件。
如何设置粘滞位?
1. chmod +t 文件名;
2. chmod 1777 文件名;
举个栗子~
这里我创建了几个文件,下面看看两种设置粘滞位的方法
1
我们可以看见file的other的可执行权限由无改变成了T,那么这里的T是什么意思呢?应该出现的x或者-去了哪里?
这是系统的规定,在设置粘滞键的时候,假如本来在该位上有x,则这些特别标志 (suid, sgid, sticky) 显示为小写字母 (s, s, t).。否则, 显示为大写字母 (S, S, T) 。根据第一个图,我们知道文件创建之后的other权限只有可读,可写与可执行为空,那么就自然而然在设置粘滞位的时候变成大写的T
2
这种方法我们可以看见file1的onwer和group的可执行权限都被添加上了,而other的可写权限被添加,而可执行权限变成了t。
这也就做到了让文件可读写但不被删。
当设置粘滞位的文件拥有不可删的权限只针对于除了以下三种用户之外的other
1.文件owner
2.超级用户
3.文件所属目录的owner