前言
我们知道了用户一旦拥有了目录的写权限,就可以删除目录中的文件,而用户本身可能没有这个文件的写权限。这样就会造成:我张三创建的一个文件,莫名其妙被李四删掉的尴尬情况。
为了解决这个不科学的问题, Linux引入了粘滞位的概念,一句话概括就是:在设置的粘滞位
的目录下,其它用户可以创建文件,但是只能删除自己的文件,不可以删除别人的文件;
粘滞位是什么
粘滞位的背景: 在使用Linux的时候,可能会有一些
共享目录
,被所有普通用户共享,用来保存普通用户产生的临时数据。共享的目录通常是root提供的,里面的文件被所有人共享的时候,文件权限
会受到约束,但是却拦不住别人删我的文件!
怎么实现添加粘滞位
我们通过chmod +t
命令设置其它用户权限位中的粘滞位
[root@localhost ~]# chmod +t /home/ # 加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文件
rm:是否删除有写保护的普通空文件 "/home/abc.c"?y
rm: 无法删除"/home/abc.c": 不允许的操作
注:
在给目录添加粘滞位后,系统会首先识别此目录是否有粘滞位。若有,则不管其他用户是否拥有读写权限,都不允许删除目录内文件;若没有,则按照其他用户实际所拥有的权限进行处理。
添加粘滞位的目录谁能删除
当一个目录被设置为"粘滞位"(chmod +t),则该目录下的文件只能由:
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除
本节完