Linux

為什麼 chmod +w 不給 other(o) 寫權限

  • September 23, 2019

當我執行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.

你的具體情況

在您的具體情況下,我們可以猜測您的目前umask002(這是一個常見的預設值),這解釋了您的驚訝。

umask在值為002(所有數字八進制)的特定情況下。

  • +r表示ugo+r因為002 & 444is 000,它允許設置所有位
  • +x表示ugo+x因為002 & 111is 000,它允許設置所有位
  • but+w表示ug+w因為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使用者帳戶(可能包括執行伺服器服務的程序)具有某種訪問權限的每個人都可以讀取和寫入您在該遮罩處於活動狀態時創建的所有文件並且不會更改(如果包含直到根目錄也允許它們)。

引用自:https://unix.stackexchange.com/questions/429421