Chmod

授予目錄樹中“其他使用者”的讀取/執行權限

  • July 9, 2018

我的幾個 Linux 機器中有以下目錄樹:

/dir1/dir2/dir3/dir4/target

每個目錄

$$ 1-4 $$目錄下有幾個目錄,所有這些目錄(及其子目錄)都具有750權限。現在,我想others瀏覽“目標”目錄及其子目錄。chmod -R o+rx在 上執行/dir1/dir2/dir3/dir4/target,確實將權限更改/dir1/dir2/dir3/dir4/target755,但others使用者無法轉到該目錄,因為r-x對其父目錄沒有權限。在其中一台伺服器上,我通過授予以下權限來解決此問題:

chmod -R o+x /dir1
chmod -R o+rx /dir1/dir2/dir3/dir4/target

考慮到上述命令將授予對 /dir 的所有子目錄的“遍歷”權限

$$ 1-4 $$同樣,是否有更好的命令僅在 /dir 上提供遍歷權限$$ 1-4 $$‘target’ 目錄的目錄和 rx 權限?

設置x“其他”/dir1/dir2/.../target和所有中間目錄(根目錄除外)的r權限,target以及路徑末尾目錄的權限:

dir=/dir1/dir2/dir3/dir4/target

chmod o+r "$dir"
while [ -n "$dir" ]; do
   chmod o+x "$dir"
   dir=${dir%/*}
done

對於給定的目錄路徑,這將執行命令

chmod o+r /dir1/dir2/dir3/dir4/target
chmod o+x /dir1/dir2/dir3/dir4/target
chmod o+x /dir1/dir2/dir3/dir4
chmod o+x /dir1/dir2/dir3
chmod o+x /dir1/dir2
chmod o+x /dir1

通過dir刪除最後一個和之後的所有內容,變數值在循環的每次迭代中都會改變/

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