自由にシンプルに楽しくいこう!

ワードプレスでパーミッション(アクセス権限)を設定する!

WordPress

今回は、ワードプレスで使用しているディレクトリやファイルに対してパーミッション(アクセス権限)を設定したいと思います。

「パーミッションって何?」という方は、こちらの引用文を確認してください。

パーミッションとは、ファイルやディレクトリに対するアクセス権のことです。 複数のユーザーが1台のパソコンを共有する場合、自分のファイルを他人に不正に操作されないようにするためのアクセス権(パーミッション)を設定することができます。 アクセス権を正しく設定することで、大切なファイルを守ることができます。

引用:パーミッションについて / ファイル管理 / マニュアル – レンタルサーバーならロリポップ!

 

パーミッションの推奨設定

いくつかのサイトで、ワードプレスのパーミッションの推奨設定を確認してみました。

 

◆ロリポップ!の推奨設定

ファイルの種類 パーミッション設定
HTML 画像ファイル 604(rw—-r–)
CGIの実行ファイル 700(rwx——)
CGIのデータファイル 600(rw——-)
.htaccessファイル 604(rw—-r–)
ディレクトリ 705(rwx—r-x)

 

◆その他のサイトの推奨設定

ファイルの種類 パーミッション設定
「.htaccess」ファイル 606
「wp-config.php」 400
その他のファイル 604
その他のディレクトリ 705
WordPressで推奨されるパーミッション設定について - 株式会社ネディア
以前、WordPressをインストールしたらまず行うセキュリティ対策 という記事を書きました。 今回は、WordPressを構成するファイル及びディレクトリの推奨するパーミッション設定について解説したいと思います。 目次 …

 

SSHソフトを使ってパーミッションを設定する

パーミッションの設定は、FTPソフトなどからファイルの属性変更を実行することにより変更が可能ですが、ワードプレスのファイルやディレクトリを1つ1つ設定していくのは、とても大変です。

そこで一括で変更できるやり方はないか調べて見ると「SSH」という技術を利用することで解決できることが分かりました。

SSHを利用すればウェブサーバーに接続してコマンドを入力して命令を実行させることができます。

それでは早速「SSHソフト」を使って、先ほどのワードプレスのファイルやディレクトリのパーミッションを設定したいと思います。

 

◆SSHの詳しい説明はコレ!

SSHについて / サーバー・プログラム / マニュアル - レンタルサーバーならロリポップ!
ロリポップ!レンタルサーバーのご利用マニュアル SSHについて説明したマニュアルページです。

 

◆ロリポップでSSHを使う説明をしているサイトはコレ!

ロリポップ!のサーバーにSSHで接続する方法
ロリポップ!のレンタルサーバーは、デフォルトではSSHでの接続ができないようになっています。ロリポップ!のサーバーにSSHで接続する方法をご紹介します。

私もこの後の文章で、SSHを使えるようにするやり方を説明していきます。

ロリポップでSSHを使えるように設定する

ロリポップのレンタルサーバーでSSHを使えるようにするためには、SSHの設定をを有効にしなければいけません。

ロリポップでSSHを使えるようにする手順を説明します。

 

ロリポップのユーザー専用ページにログインします。

メニューから「サーバーの管理・設定」→「SSH」を選択します。

 

[SSHを有効にする]を選択します。

 

これで「SSH」を利用するための設定が完了しました。

そして、ここに表示されているSSHの接続情報をSSHソフトに設定します。

 

 

SSHソフト「TeraTerm」を使って接続する

SSHソフトは、「TeraTerm」というソフトを使ってみたいと思います。

使い方は、ロリポップに説明がありました。

Win TeraTermのSSH設定について / サーバー・プログラム / マニュアル - レンタルサーバーならロリポップ!
ロリポップ!レンタルサーバーのご利用マニュアル TeraTermのSSH設定について説明したマニュアルページです。

 

ロリポップの説明ページからTeraTermのダウンロードページに行けるので、TeraTermをダウンロードしてインストールを実行します。

 

TeraTermのインストールが完了したらソフトを実行します。

 

新しい接続画面が表示されるので、「ホスト」「TCPポート」を入力しましょう。

 

SSHの接続情報は、WEBサーバーのSSHの項目で確認しましょう!(例:ロリポップのSSH接続情報)

 

接続情報を入力できたら[OK]を押します。

 

「セキュリティ警告」画面が表示されます。

[このホストをknown hostsリストに追加する]にチェックを入れて、[続行]を選択します。

 

「SSH認証」画面が表示されるので、「ユーザ名」「パスフレーズ」を入力します。先ほど確認したSSH接続情報の「2」「4」の値になります。

入力ができたら[OK]を選択します。

 

これでSSHの接続が完了します!

 

SSHコマンドを使ってパーミッションを設定する

それでは早速コマンドを入力してパーミッションの設定を行っていきたいと思います。

 

<参考サイト>

このサイトの情報を参考にさせて頂きました。

Wordpressのデータフォルダのパーミッション一括変更 : むー便屋さんの配達記録
マルチサイトとかマルチドメインとか色々やってたらログインできなくなってしまったorzかろうじてバックアップから戻すことができたが、FTPしたときにパーミッションがめちゃめちゃに・・。過去の改ざん事件はパーミッションが不適切だったため、ということらしいので、ここ

 

前の項で、ワードプレスのパーミッションの推奨設定を記述しましたが、今回は次のとおりにパーミッションを設定していきたいと思います。

 

◆パーミッションの設定

ファイルの種類 パーミッション設定
「.htaccess」ファイル 606
「wp-config.php」 400
CGIの実行ファイル 700
CGIのデータファイル 600
その他のファイル 604
その他のディレクトリ 705

※「.htaccess」は、「604」の場合にパーマリンクが変更できないことがあるため「606」に設定する。

 

またパーミッションを変更する時は、次のコマンドを使用します。

コマンド コマンドの説明
pwd 現在のいる位置(ディレクトリ)を教えてくれるコマンドです。
ls フォルダ一覧を表示します。
cd ディレクトリの位置を移動します。

 

それでは、コマンドを入力していきたいと思います。

まず初めに「cd」コマンドを入力してワードプレスがインストールしてあるディレクトリに移動します。

そして正しい位置に移動できたか「pwd」コマンドを入力して現在の位置を確認します。

カレントディレクトリ(現在の位置)に問題なければ、次のコマンドを入力していきます。

 

◆SSHコマンド

find . -type d -exec chmod 705 {} \;
find . -type f -exec chmod 604 {} \;
find . -type f -name "*.cgi" -exec chmod 700 {} \;
find . -type f -name "*.dat" -exec chmod 600 {} \;
find . -type f -name "wp-config.php" -exec chmod 400 {} \;
find . -type f -name ".htaccess" -exec chmod 606 {} \;

※設定変更により問題が発生する場合も考えられますので、ご利用は自己責任でお願い致します。

 

こんな感じで実際にコマンドを入力していきました。

 

コマンドを入力してパーミッションを一通り設定できたらワードプレスの動作確認を行うようにする。

・WordPress管理画面へのログイン

・記事の投稿及び画像のアップロード

・プラグインの追加と削除

・テーマの変更

 

そしてSSHは利用しない時は、無効にしておきましょう。

ワードプレスの動作確認を行い問題がなければパーミッションの設定完了です!

 

「find: missing argument to `-exec’」エラーが発生した

今回のパーミッションを変更する過程で、次のエラーが発生してつまづくことがあったので、メモを残しておきます。

 

◆エラーの内容

「find ./ -type d -exec chmod 705 {} \;」と入力して、ディレクトリのアクセス権を705に変更しようとしたと時に、「find: missing argument to `-exec’」と表示されてうまくいかない。

 

このエラーが何で表示されてしまうのか調べて見るとコマンドの最後に「\;」の前にスペースを入れないとこのエラーが発生するといったサイトがいくつかあったが、今回ちゃんとスペースを入れてコマンドを入力しているがエラーが発生してしまった。

ということで別の解決方法について調べてみたところディレクトリの区切り文字を無くしてコマンドを入力したところエラーが発生しないで正常にコマンドを入力することができました。

「./」→「.」に変更したら問題解決!

 

(変更前)find ./ -type d -exec chmod 705 {} \;

(変更後)find . -type d -exec chmod 705 {} \;

 

パーミッションが正しく変更されているか確認する

ここまでで、SSHソフトを使ってワードプレスのディレクトリやファイルのパーミッションを変更しました。

このパーミッションの変更処理が正しく行えたか確認していきたいと思います。

 

このようにFTPソフトを使って「属性変更」から確認することもできますが、この作業も一つ一つ行うと大変なので、次のツールを利用させて頂きました。

「パーミッション一括変更ツール」

パーミッション(属性)一括変更ツール・WordPress最適化済
WordPressのパーミッション(属性)を一括変更するツールを作成!ファイル、フォルダのパーミッションが一覧表示でき、ファイルを選んでパーミッションの変更が行えます。これを使ってまとめてパーミッションを変更してセキュリティの強化を!

パーミッション一括変更ツールの使い方

パーミッション一括変更ツールの使い方ですが、まずは先ほどのサイトからツールをダウンロードします。実験用のテストファイルも公開されているので、ツールと一緒にダウンロードして最初に動作確認を行うと良いでしょう。

ダウンロードしたzipファイルを展開して、WEBサーバーに「chmod_wp.php」ファイルをアップロードします。

 

ブラウザからアップロードした「chmod_wp.php」ファイルにアクセスします。するとこのように「パーミッション一括変更ツール」が表示されます。

 

パーミッションの確認ですが、ファイルの種類にチェックを入れて[ファイルリスト表示]を選択します。

 

指定したファイルの種類の一覧が表示され、パーミッションを確認することができます。

確認することができるファイルの一覧は、「chmod_wp.php」をアップロードしたディレクトリとその配下のディレクトリが対象になっているようです。

 

そしてこのツールは、パーミッションの設定もできるようです。

パーミッションを変更したいファイルにチェックを入れます。

パーミッションの設定を変更して[パーミッション変更実行]を選択します。

 

すると指定したファイルのパーミッションが変更されます。

 

但し、「604」など「0」が入った場合の指定の仕方が分かりません。

このツールで全て設定できれば簡単だったのですが、「0」を指定するやり方が分からなかった為、今回の記事で紹介した「SSH」を使ったやり方を試すことになりました。

 

まとめ

今回は「SSH」を使ってパーミッションを設定するやり方を紹介しました。

適切なパーミッションを設定することでセキュリティを高めることができます。

ワードプレスのファイルは、たくさんのファイルがあるので「SSHソフト」を使うと一括処理ができてとても便利です。

今後もパーミッションを設定することがあれば、今回のやり方をぜひ活用していきましょう!