ユーザーのホームディレクトリに1つ以上の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コマンドの実行に時間がかかります。私はこれがマウントポイント(多くのディレクトリとファイルが含まれている)に降りることを意味すると信じています。
私のコマンドのもう1つの問題は、スキップした場所を明示的にコーディングする必要があることです。すべてのユーザーにはドキュメントがインストールされていますが、一部のユーザーには別の名前で他のNFSもインストールされています。
私の目標は、chmod o-rwx
ユーザーアカウントの単純なディレクトリ権限の問題を自動的に修正することです(たとえば、私の状況でこれを行うにはどうすればよいですか?
答え1
これが私が思いついた解決策です:
find /home/$theuser -mount -maxdepth 1 ! -fstype nfs4 ! -fstype nfs -type d -exec chmod o-rwx {} \;
否定的なfstype
オプションは私の問題の1つまたは2つを解決しました。別の問題(速度)を修正しました-maxdepth 1
。
これら2つのオプションを組み合わせることができます-fstype
。知っている人がいる場合は、この回答を編集してください。