すべてのマウントをスキップしながら、$ HOMEのすべてのディレクトリに対する権限をすばやく変更します。

すべてのマウントをスキップしながら、$ HOMEのすべてのディレクトリに対する権限をすばやく変更します。

ユーザーのホームディレクトリに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。知っている人がいる場合は、この回答を編集してください。

関連情報