文章目录
- 目录权限
- umask
- 粘滞位
目录权限
先来思考一个问题:
进入一个目录需要什么权限呢?
由上图我们可以得知,进入目录需要x权限,那么没有r和w权限是什么情况呢?
从图中我们可以得知没有r权限不能查看目录里面的内容,没有w权限不能在目录里面删除或者创建文件。
这里不知道大家有没有疑惑,我是目录的拥有者没有了x不能进入目录,但是我同时还是文件的所属组啊,所属组还有x权限为什么不能进入?
因为权限只被认定一次,当拥有者和所属组是同一个人,拥有者没有x权限的时候,操作系统便不再进行之后的认定。
umask
我们知道linux权限可以用八进制表示和更改。
linux默认起始权限:
创建一个目录,目录的起始权限:777
创建一个普通文件,普通文件的起始权限:666
但是我们去linux下实际操作一下发现有所不同。
我们会发现,目录的实际起始权限为775,而普通文件的实际起始权限为664.
那么为什么会与实际创建的不同?
因为umask(权限掩网)的存在。
我们只看umask的后三位,凡是在umask中出现的权限,都不应该在最终权限中出现。
演示:
所以最终权限 = 起始权限 & (~umask)
粘滞位
使用场景:
当多个普通用户共享一个目录,需要在该目录下,进行读、写、创建或者删除文件。
为什么在那个目录下我们可以删除不是本用户的文件呢?
因为那个对所有人开放了所有的权限
如果我们要想别人不删除我们的文件我们也可以去掉w权限,但是这样就失去意义了,就不满足多用户共享的条件了。
那该如何解决呢?
这时候就需要粘滞位登场了。
我们给共享目录加上粘滞位就可以了
。
上面就是加粘滞位的方法。
下面测试一下粘滞位是否有效。
由上图可以看出粘滞位确实有效,谁的文件只能由谁删除。
那么目录的粘滞位,其他人可以去掉吗?
我们发现,其它用户没有这个权限,谁加的粘滞位只能由谁删除
。
目录有粘滞位,目录的文件只能由一下几类人删除:
1、root
2、目录所有者
3、文件所有者