Linux
為什麼 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
.
你的具體情況
在您的具體情況下,我們可以猜測您的目前
umask
是002
(這是一個常見的預設值),這解釋了您的驚訝。
umask
在值為002(所有數字八進制)的特定情況下。
+r
表示ugo+r
因為002 & 444
is000
,它允許設置所有位+x
表示ugo+x
因為002 & 111
is000
,它允許設置所有位- but
+w
表示ug+w
因為002 & 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
使用者帳戶(可能包括執行伺服器服務的程序)具有某種訪問權限的每個人都可以讀取和寫入您在該遮罩處於活動狀態時創建的所有文件並且不會更改(如果包含直到根目錄也允許它們)。