Permissions

在跳過所有掛載的同時快速更改 $HOME 中所有目錄的權限

  • February 13, 2020

在使用者主目錄包含一個或多個 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選項結合起來。如果有人知道,請編輯此答案。

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