特殊权限stick_bit

stick_bit

设置在文件上无意义

权限设定语法:chmod o+t      ,取消权限语法:chmod o-t。其他用户权限位有“t”权限,如下图:

image.png

为什么会有stick_bit权限?

我们知道/tmp是系统的临时文件目录,其他用户权限位“rwt"也是有“x”权限的,也就是谁都可以读可以写也可以执行,那如果用户A在该目录下创建了一个文件或目录,用户B将该文件删除了,这种情况linux是不能允许的。为了达到该目的,就出现了stick bit(防删除位)的概念。如下图:

image.png

其他用户权限位“rwt"的“t”就是“防删除位”权限,它是针对目录来说的,如果该目录设置了stick bit(防删除位),则该目录下的文件除了该文件的所有者和root用户可以删除和修改 “/tmp”目录下的文件或目录,别的普通用户均不能被删除,这就是防删除位的作用。我们来做一个实验,创建一个user1与user2的用户,然后在user1用户创建一个文件并随便写入一些内容,看看user2用户能不能删除,如下图:

image.png

“user1”用户在“tmp”目录下创建了一个“user1.txt”文件,并赋予“777”权限,现在使用“user2”用户看看能不能修改或删除,如下图:

image.png

修改文件的内容是可以的,但能不能删除这个“user1”的文件呢?如下图:

image.png

就算其他用户有拥有可读可写可执行权限,也是不能删除这个文件的,所以这个“stick_bit”权限叫“防删除位”,除了拥有者或者“root”用户才能删除。

实验:我们在“user2”用户创建一个“111”目录,再给这个目录“777”的权限,如下图:

image.png

并创建“111.txt”文件与“222”目录。如下图:

image.png

那“user1”用户所创建的目录或文件在“user2”的用户下是否能编辑或删掉呢?先看下图:

image.png

可以看到“111”目录下有“111.txt”文件与“222”的目录,它们都属于“user2”的,我们都知道这个“111.txt”文件本身普通用户的权限是只读的, 目录“222”的普通用户也是没有写权限的,那“user1”能不能删掉这“111.txt”文件或“222”的目录呢?我们来看看,如下图:

image.png

答案是可以的,为什么呢?普通用户对这个“111.txt”文件只有只读权限或目录“222”只有可读可执行权限吗?怎么就能把“user2”用户的文件或目录删掉呢?那是因为要看所删除的文件或目录的所在目录有没有写的权限,而不是看所删除的文件或目录本身的权限。都知道“user2”创建的“111.txt”文件与“222”目录都在“/tmp/111/”的目录下,我们来看一下这个目录的权限,如下图:

image.png

这个目录谁都可以写,然而删某个文件或目录也是看这个文件或目录所在的目录有没有写的权限,实验上的“111.txt”文件与“222”目录所在的“/tmp/111/”目录权限是可写的,所以能删除。

但是一旦加上“stick_bit”防删除位权限后就不能删除了,虽然可以修改但是不能够删除。如“user2”给这个“/tmp/111/”目录加上“stick_bit”,再创建“123.txt”文件与“223”目录,如下图:

image.png

再在“user1”用户试试能不能删除或编辑,如下图:

image.png

当你编辑“123.txt”文件时,系统会提示“警告:正在修改一个只读文件”如下图:

image.png

即使你编辑了强制保存也不行,只能强制退出,那删除呢?如下图:

image.png

删除也是无法操作的,这就是“stick_bit”防删除位权限的作用。

提示:给“stick_bit”防删除位权限前一定要先给“777”权限,如果两者顺序有误,这“777”权限会覆盖掉“stick_bit”防删除位权限,如下图:

image.png

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.gzievs.net.cn/post/48.html

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。