一,权限掩码
权限掩码又称
umask
,在不同平台的umask默认值不同。
(这里是我的linux下的umask)
umask是八进制数,故0 022
。
那么权限掩码有什么作用呢?
当然是设置默认文件/目录最终权限(就是命令行显示出来的权限)
这里先介绍一下我们所看到的文件/目录最终权限的由来
最终权限 = 默认权限 & (~umask)
ps: linux下文件的默认权限是666,目录的是777
下面我们进行验证
我创建了“文件a”和“目录b”,此时我们来运算一下,
文件最终权限
= 666 &(~022)
= 110 110 110 & 111 101 101
= 110 100 100
= 644
目录最终权限
= 777 & (~022)
= 111 111 111 & 111 101 101
= 111 101 101
= 755
二,目录权限
- | r(read) | w(write) | x(execute) |
---|---|---|---|
文件 | 读写 | 修改 | 可以执行 |
目录 | 查看 | 在里面进行文件操作 | 可以进入 |
目录没有r
权限,我们查看不了当前文件夹的信息
目录没有w
权限,我们在文件夹里创建不了文件
目录没有x
权限,我们就进不去
三,粘滞位
假设有这样一段场景,root用户创建了一个公共目录public,允许我们其他用户在里面工作。可以我们用户创建文件,修改文件等等。
如图,我们各自都有自己的文件。
但是我们突然也发现,任意一个普通用户虽然不可以写和执行,但是都可以删除里面的文件。
这肯定是不允许的,所以粘滞位的必要性就来了。
粘滞位只可以给目录添加,防止里面的文件被删除
chmod +t 目录名
如图:
此时我们再去看看能不能删除文件了
显然,有了粘滞位的加入,普通用户不能删除别人的文件,
root
不受粘滞位的约束。