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

2013-07-28 16:57:37
レンタルしていたサーバー屋が廃業するということで、サイトのお引越しをせざるを得なくなってしまった。

ポータルサイトの引越しの際、ユーザーが管理画面からアップロードしたデータを新しいサーバーに移動した際に、パーミッションが初期状態になってしまった。パーミッションを変更しなければ、管理画面から変更ができなくなってしまう。

ディレクトリは【755】から【777】へ
ログファイルは【644】から【666】へ変更しなくてはいけない。

普通ならFTPソフトで変更すれば終わりの話なのだが、ディレクトリが1000ファイル以上あり、各ディレクトリには無数の画像ファイルが存在し、FTPでの手作業では時間がかかりすぎてしまう。

そこで、SSH(コマンド)でやっちゃおうということで、

まずはSSHでメジャーなフリーソフトのPuTTYをダウンロード。PuTTYはインストールの必要がなく、putty.exeというファイル単体で稼動する。(一見ヤバイ実行ファイルに見えるが大丈夫)

PuTTY(putty.exe)を起動し、HostNameのところにFTPで設定しているホストを入力し、openを押す。

コマンドプロントのような画面が開くので、まずユーザーIDとパスワード(これもFTPの設定と同じ)を入力。

ログインができたら、下記を実行して完了

指定ディレクトリ内のすべてのディレクトリのパーミッションを変更する場合
find /var/www/cgi-bin/ -type d -exec chmod 777 {} \;

指定ディレクトリ内のすべての .img ファイルのパーミッションを変更する場合
find /var/www/cgi-bin/ -name \*.jpg -exec chmod 666 {} \;

PHPでコードを組んでパーミッションを変更する方法もあるが、このケースの場合はSSHの方が圧倒的に早く終わる。

カテゴリ: その他