答え1
私は通常、以下を使用します。
find . -type f -print0 | xargs -0 sudo chmod 440
find . -type d -print0 | xargs -0 sudo chmod 555
ただし、実行可能ファイルは考慮されません。ファイルに対して次のようなことをすることを考えていました。
find . -type f -print0 | xargs -0 sudo chmod ug+r ug-w o-rwx
しかし、まだ 2 つのコマンドがあり、これが最善の方法かどうかはわかりません。おそらく、誰かがもっと良い提案をしているでしょう。
答え2
そうですね、ディレクトリとその中のファイルに同じ権限を設定しないでください。
$ chmod g+rx directory/
$ chmod g= directory/*
ここで、グループのメンバーはディレクトリにアクセスして参照できますが、ディレクトリ内のファイルを読み取ることはできません。
編集: 新しいタイトルに関しては、次のことをお勧めします:
$ chmod a+rx directory/
$ chmod u=rwX,g=rX,o= *
答え3
すでに作成されているディレクトリとファイルの場合:
/start_directory を見つけます -type d -exec chmod 755 {} \;
/start_directory を見つけます -type f -exec chmod 660 {} \;
ユーザーが新しいファイルやサブディレクトリを作成できるようにする必要がある場合は、解決策は正確な要件によって異なるため、詳細をお知らせください。