ファイルやディレクトリのパーミッションを一括で変更する方法

  • 投稿日:
  • by

chmod コマンドは、パーミッションを変更するコマンドだが、変更可能な範囲はワイルドカードを利用しても1階層のみになってしまう。サブディレクトリも含めて特定のファイルのパーミッションを変更するにはどうしたらよいだろうか。

答えは、find で該当するファイルを探し、chmod にその結果を渡してパーミッションを変更してあげればいい。
以下は、指定ディレクトリを /var/www/cgi-bin/ とした場合のそれぞれの例です。

指定ディレクトリ内のすべての .cgi ファイルのパーミッションを変更する場合

find /var/www/cgi-bin/ -name \*.cgi -exec chmod 755 {} \;

指定ディレクトリ内のすべてのディレクトリのパーミッションを変更する場合

find /var/www/cgi-bin/ -type d -exec chmod 755 {} \;

こういう小さな知識の積み重ねがサーバー管理の効率化に繋がっていく...かな(^^;