web-dev-qa-db-ja.com

Linux - フォルダを再帰的にchmodするには?

フォルダ内のすべてのものを再帰的にchmodするにはどうすればよいですか。

例えば私は多くのサブフォルダとファイルを含むvarというフォルダを持っています。

このフォルダとその中身に再帰的にchmod 755を適用するにはどうすればいいですか?

23
Black

マニュアル(man chmod)を参照してください。

-R, --recursive
change files and directories recursively

chmod -R 755 /path/to/directoryはあなたが望むものを実行するでしょう。

しかし……

  1. あなたは通常、すべてのファイルを755したくありません。これらは実行可能である必要がないことが多いので、644であるべきです。そのため、ディレクトリパーミッションのみを変更するためにfind /path/to/directory -type d -exec chmod 755 {} \;を実行できます。ファイルに権限を適用するには、-type fおよびchmod 644を使用します。

  2. これは既存の許可を上書きします。 /varのためにそれをするのは得策ではありません - そのフォルダはすでにシステムによって設定された正しい許可を持っています。例えば、/varの中のいくつかのディレクトリは775の許可を必要とします(例えば/var/log)。

そのため、Sudo chmodを実行する前に - 特にシステムフォルダで - 一時停止して、それが本当に必要かどうかについて考えてください。

43
slhck