PR

[Linux] ファイル・ディレクトリのパーミッション一括変更(2)

ということで、前回の続き「ファイル・ディレクトリのパーミッションを一括変更する方法」を探した。

スポンサードリンク

ファイル・ディレクトリのパーミッション一括変更

ファイルの一括変更

$ find ~/public_html/ -name \*.php -exec chmod 644 {} \;

上記コマンドで変更できる。

※この例では拡張子がphp のものを全てパーミッション644 に再設定する

ディレクトリの一括変更

$ find ~/public_html/ -type d -exec chmod 755 {} \;

上記コマンドで変更できる。

※この例ではディレクトリのパーミッションを全て755 にしている
※ファイル・ディレクトリ、何れも例のコマンドでは「~」(=/home/casey)/public_html/ のすべてに作用する

ちなみに、755 (705 でもOKかも)とするのは744 などではApache 関連で読み込みエラーとなるため実行権限が必要になる(結構ハマった)

このようなエラーになる:

(13)Permission denied: /home/casey/public_html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable
(13)Permission denied: access to / denied

これらのエラーは.htaccess が要求されたディレクトリ、その上位ディレクトリと.htaccess を参照してくからなのだが、それはすでに了承していた。

その時の解決策は何故か自動生成される.htaccess のパーミッションが600 (umask が適切でも・・)なのが原因であって、644 にすれば解決していた。

今回ハマったのは「ディレクトリに実行権限がないとダメ」ということだったから。

参考文献

コメント