フォルダ内の特定のユーザーとグループの実行を追加し、ファイルから削除します。

フォルダ内の特定のユーザーとグループの実行を追加し、ファイルから削除します。

このコマンドを実行しようとしても、期待した結果は出ません。

chmod -R u-x+Xrw,g-x+Xrw,o-x+Xr *

私のすべてのディレクトリは実行可能であり、すべてのファイルは実行可能ではないことを望みます。これはWebサーバー用の保存フォルダであり、誰もこのフォルダで何もしないことを願っています。読み書きするだけです。しかし、そのディレクトリに移動できるようにしたいです。

何らかの理由でこれらのファイルも実行可能になります。私が何を間違っているのでしょうか?

編集する:他の答えに示されている解決策を使用して問題を解決する方法を知っていますが、ここで書かれたコマンドはファイルを削除するようですが、なぜファイルにxフラグを残すのか疑問に思います。

ベストアンサー1

ファイル(読み取りと書き込み)がディレクトリ(読み取りと実行)とは異なる権限を持つことを望むので、2つのコマンドを1つにまとめるよりも2つの別々のコマンドを使用することをお勧めします。ワイルドカードは*ファイルとディレクトリと一致します。

第二に、X権限に「実行」を追加します...

ファイルがディレクトリである場合、またはすでに一部のユーザーに対する実行権限がある場合

...したがって、ファイルがランダムな(ユーザー、グループ、またはその他の)実行権限で始まると、実行権限で終わります。

2 つの個別のコマンドを考えます。

find /base/path -type d -exec chmod u+rx,g+rx,o+rx {} +

そして

find /base/path -type f -exec chmod u-x+rw,g-x+rw,o=r {} +

上記のコマンドに従って権限セットを調整します。

  • ディレクトリから:次へ追加誰でも読んで実行できるように
  • ファイル情報:削除ユーザーとグループに対して実行
  • ファイル情報:次へ追加ユーザーとグループへの読み取りと書き込み
  • ファイル情報:セット他のものは読み取り専用です。

おすすめ記事