作者:华清远见讲师
文件权限:是指对文件的访问权限,包括对文件的读、写、删除、执行等。Linux 是一个多用户操作系统,因此 Linux 将一个文件或目录与一个用户和组联系起来。
对于文件的读(r)、写(w)、执行(x)权限,我们比较熟悉了,为了引出后面特殊权限,我们对目录文件的写(w)权限进行讲解。
首先需要明白一点,一个目录文件的写权限是很大的,如果拥有了该目录的写权限,就意味着可以在该目录下进行创建、删除、更改目录项名字等等操作,如图所示:
让其他组的人也对该目录有写权限:
用户farsight在test目录下创建文件file1、file2、file3:
另外一个不相干的用户zyl进入了test目录,可以删除farsight用户的文件:
用户zyl甚至可以更改farsight用户文件的内容:
使用vi编辑器编辑文件file2,在保存退出时,会提示readonly,无法保存,但是我们可以加一个感叹号就ok啦!
从截图可以看到file2文件从0字节变为了69字节,连用户和用户所属的组以及时间都改变了,这是非常危险的,所以当我们创建目录时,不能讲写权限给别人,庆幸的是掩码为我们做了这件事,但是有时候我们需要其他人也可以在自己的目录下创建,删除他自己的文件,为了解决这个情况,我们引入了sticky权限(t)。
还是上面的例子,如果farsight用户给自己的test目录加上t权限,就不会出现上述的情况,见下图:
上面的命令chmod 1777 test,也可以写成chmod o+t test。
用户zyl删除file3文件
用户zyl修改file3文件的内容:
可见为目录加了t权限后,用户只能删除和修改该目录下自己的文件,别人的目录和文件等到了很好的保护。
实际上,根目录下的tmp目录就具有这样的权限:
因为/tmp目录是一个临时目录文件,系统中所有用户都可以将自己的临时文件放入该目录中,而不能删除或修改该目录中其他用户的文件。t权限只针对目录文件才有意义。
当然除了t权限外,还有SUID,SGID特殊权限,这里就不做一一讲述了。