Permissions
在跳過所有掛載的同時快速更改 $HOME 中所有目錄的權限
在使用者主目錄包含一個或多個 NFS 掛載點的情況下,如何跳過這些掛載並有效地更改目錄權限?
我想
chmod o-rwx
在使用者主目錄下的所有未安裝目錄上執行。我將以 root 使用者身份執行該命令,因為我正在為系統上的所有使用者執行此操作。(NFS 掛載具有
root_squash
掛載選項。)這是我嘗試過的。但是,它沒有按預期工作。
sudo find /home/myuser/ -mount -path ./Documents -prune -o -type d -exec chmod o-rwx {} \; chmod: changing permissions of '/home/myuser/Documents': Operation not permitted
我想避免錯誤消息。更重要的是,find 命令需要很長時間才能執行。我相信這表明它正在下降到掛載點(其中包含許多目錄和文件)。
**我的命令的另一個問題是我必須明確編碼要跳過的位置。**所有使用者都安裝了 Documents,但有些使用者安裝了其他名稱不同的 NFS。
我的目標是自動修復使用者帳戶(即
chmod o-rwx
)中的簡單目錄權限問題。我該如何在我的情況下做到這一點?
這是我想出的解決方案:
find /home/$theuser -mount -maxdepth 1 ! -fstype nfs4 ! -fstype nfs -type d -exec chmod o-rwx {} \;
否定
fstype
選項解決了我的一兩個問題。解決了-maxdepth 1
另一個(速度)。可以將這兩個
-fstype
選項結合起來。如果有人知道,請編輯此答案。