当我运行时,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
您的具体情况
根据您的具体情况,我们可以猜测您的电流umask
是002
(这是常见的默认值),这解释了您的惊讶。
umask
在价值是的特定情况下002(所有数字都是八进制)。
+r
意味着ugo+r
because002 & 444
is000
,它可以设置所有位+x
意味着ugo+x
because002 & 111
is000
,它可以设置所有位- but
+w
表示ug+w
because002 & 222
is002
,它阻止设置“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