粘滞位
现在我们学习了目录和普通文件的权限后,对这两种类型的文件权限都有了深刻的理解和认识,但是这又衍生出了一个新问题,这些目录/普通文件的使用都很局限,一旦设定了权限,别人都无法访问。
举个生活的例子,比如上学的学生们,每个班级的学生都有他们独立的教室,别的班级想要来这个教室A是不被允许的(没有位置供他们坐),但是各个班级却有公共的场所设施,比如食堂、操场、厕所等地方,大家都都可以随意访问,没有权限限制。而在Linux是否也存在着这样的一个公共地方呢?
答案是有的,它被称为公共目录,公共目录可以被任何用户所访问,里面的内容
如下为新创建好的一个公共目录,并将该目录执行: chmod 777 public_dir (增加权限)
在public_dir目录中,使用两个子账户czj,qqq分别创建好了两个普通文件:
这时,两个子账户都想访问访问对方的文件:
但是在访问过程中,双方只能互相去看文件内容,而不能给对方的文件进行写入修改。他们在想:这分明是公共目录 ,为什么我不能去写文件!所以他们怨恨在心,相互把对方的文件给删除了,如下:
于是这样就出现了一个弊端,在公共目录下随意删掉别人的文件是非常恶心的做法,就好比学生们中午在餐厅吃饭,学生A因为在教室与学生B闹了矛盾,故意趁学生B不注意倒掉了他的饭!这种行为会导致一系列的问题发生。Linux为了不让这种行为发生,创建了一个粘滞位指令:
chmod +t 公共目录名称
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
这样子用户永远无法随意删除别人的文件: