为什么会有粘滞位
一台服务器有很多人使用,每个人在机器上都会有一个家目录,在家目录里可以实现自己想要的操作,但是有时候我们需要一个公共路径来完成一些操作,比如说资料分享产生临时文件的增删查改等等,这就好比我们上学期间每个人都有一个对应的班级,在班级里面上一些文化课但是对于体育课这种室外课程就会有多个班级去同一个操场上进行上课,那么这个操场就相当于一个公共路径,班级就相当于用户的家目录,那么这里就有一个问题:这个公共路径在哪里创建呢?能在其他用户的家目录下吗?比如说在用户xbb的家目录里创建一个tmp文件夹作为公共路径,可以吗?答案是不行的因为其他用户无法进入xbb的家目录没有权限,如果将权限放开的话有些用户可能会对xbb的家目录造成一些破话,这是我们无法防止的:
所以这里的公共路径一般都是由root用户在根路径下进行创建:
这里的tmp文件夹就是Linux操作系统自己创建的一个公共路径,那么这里我们自己也创建一个tmp文件夹来作为公共路径:
并且这里为了让大家更好的在公共路径下进行操作,我们这里把所有人的权限全部放开:
然后每个人都可以在这个公共路径里面创建文件等一系列操作:
但是这里就存在一个问题,xbb用户在公共路径下创建了一些文件或者有一些重要的资源,其他的用户可以将这些文件或者资源给删掉,而且可以不经过其他人的同意:
这就会产生一些问题,一旦两个程序员私下里发生矛盾了,很可能会导致程序员在公共目录里面互删,为了以防出现这种问题就有了粘滞位这个东西。
如何设置粘滞位
在粘滞位的空间下可以创建文件,但是一个用户不能删除其他用户的文件,这里的删除并不是文件本身决定的,而是目录的权限决定的,在一个公共目录里面,大家可以各自执行rwx操作,但是禁止大家互删对方的文件就可以给这个目录设置粘滞位(权限的一个特殊情况),设置的方法就是chmod + t 文件名,这个只有文件的主人能够进行设置,并且默认设置的就是other的权限,比如说下面的操作:
大家可以看到my_tmp文件夹的other权限变成了rwt,这个t表示的就是粘滞位,这样的话普通用户可以在公共路径里面创建文件:
又可以防止用户进行互删,当然这里自己是可以删除自己创建的文件
但是别人不能删除自己的文件:
那么这就是粘滞位的作用希望大家能够理解。