为什么 chmod +w 不给予 other(o) 写权限

为什么 chmod +w 不给予 other(o) 写权限

当我运行时,chmod +w filename它不会授予 写权限other,它只授予user和写权限group

执行此命令后

chmod +w testfile.txt

跑步ls -l testfile.txt印花

-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt

+r但在这种情况下+x它可以正常工作。

我不想用chmod ugo+w filename

答案1

您的具体情况

根据您的具体情况,我们可以猜测您的电流umask002(这是常见的默认值),这解释了您的惊讶。

umask在价值是的特定情况下002(所有数字都是八进制)。

  • +r意味着ugo+rbecause 002 & 444is 000,它可以设置所有位
  • +x意味着ugo+xbecause 002 & 111is 000,它可以设置所有位
  • but+w表示ug+wbecause 002 & 222is 002,它阻止设置“o”位。

其他例子

  • 有了umask 022 +w就意味着u+w
  • 有了umask 007 +rwx就意味着ug+rwx
  • 有了umask 077 +rwx就意味着u+rwx

什么符合您的期望

当您更改umask为时000,通过执行

umask 000

在你的终端中,然后

chmod +w file

将权限设置为 ugo+w。

边注

正如 ilkkachu 所建议的,请注意,这umask 000并不意味着每个人都可以读取和写入您的所有文件。

umask 000意味着每个人都可以某种方式访问任何您计算机上的用户帐户(可能包括运行 ofc 服务器服务的程序)可以读取和写入您使用该掩码创建的所有文件,并且不会更改(如果包含的目录链直到根目录也允许它们)。

答案2

和:

chmod +<perms>

烫发被添加到用户,团体其他但 umask 仍然适用。它确保该文件不会被授予比新创建的文件更多的权限。

如果您想添加权限用户,团体其他无论umask如何,都使用

chmod a+<perms>

这是缩写

chmod ugo+<perms>

答案3

您需要指定您授予权限的对象,例如other,通过使用chmod o+w testfile.txt

相关内容