尊敬的老师,使用chmod +rwx时,o里面w权限加不上,但是chmod a+rwx时,o里面w权限就能加上,+和a+有什么区别吗,还是有什么对o特殊的规定呢

来源:3-11 群组的管理

w慕莱坞

2020-04-02

写回答

1回答

Oscar

2020-04-04

u 表示用户
g 表示用户组
o 表示其它
a 表示所有


//img.mukewang.com/szimg/5e883517091adbd923360404.jpg

上面画红线的那句意思是“如果你没有指定 ugoa”里的任何一个,那么就相当于使用了 a(也就是所有用户),但是在 umask 中设置的位不被影响“。

这个跟 umask 有关。umask 被称为“权限掩码”。umask 是和 chmod 配套的,总共为 4 位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后 3 个。

可以用 umask 命令来输出目前的 umask 的值。可以看到此时的 umask 的值是 0002。第一个 0 我们暂时不去管它,看后面 002 这三位。此时你建立的文件默认权限是 664(6 - 0,6 - 0,6 - 2),建立的目录的默认权限是 775 (7 - 0,7 - 0,7 - 2),可以用 ls -l 命令验证一下。umask 的用途是为了控制默认权限,不要使默认的文件和目录具有全权而设的。

因为我们的 umask 值为 0002,最后的那位 2 就表示 other 的 w(write) 权限。因此,你用 chmod +rwx file1 的时候,会发现 other 的 w 权限没有被添加,因为 umask 中设置的位不被影响,所以权限变为 775。而你用 chmod a+rwx file1 则不受 umask 的约束,权限变为 777。

//img.mukewang.com/szimg/5e88347409c7ac9d16681114.jpg

知道了 umask 的作用后,你也可以修改 umask 的值了,例如 umask 024,则以后建立的文件和目录的默认权限就为 642 和 753 了。

2
2
w慕莱坞
很详细,秒懂
2020-04-04
共2条回复

Linux核心技能与应用

一网打尽Linux必备核心技能,面试、升职必备的“敲门砖”。

2089 学习 · 692 问题

查看课程