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

w慕莱坞
2020-04-02
1回答
-
u 表示用户
g 表示用户组
o 表示其它
a 表示所有上面画红线的那句意思是“如果你没有指定 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。
知道了 umask 的作用后,你也可以修改 umask 的值了,例如 umask 024,则以后建立的文件和目录的默认权限就为 642 和 753 了。
222020-04-04