LinuxやWordPress運用で突然の権限エラーに直面したとき、原因を最短で見極めて安全に直す流れを身につければ復旧は早くなります。
この記事ではls -lでの確認からchown・chmodによる最小限の修正までを、迷わず実行できる定型手順にまとめます。
詳細な流れを横断的に確認したい場合は Linuxトラブルシューティング総合ハブ から全体像をご覧いただけます。
よくある権限エラーの症状
WordPressでのアップロード失敗や更新エラー
WordPressでは、画像やプラグインをアップロードしようとした際に「アップロードに失敗しました」「ディレクトリを作成できませんでした」と表示されることがあります。これは多くの場合、wp-content/uploads ディレクトリの所有者や権限が正しく設定されていないことが原因です。
Linuxでの「Permission denied」「Operation not permitted」
Linux環境では、シェルでファイル操作をしたときに次のようなエラーが出ることがあります。
$ cat /var/www/html/config.php
cat: /var/www/html/config.php: Permission denied
あるいは削除・移動時に次のように表示されるケースもあります。
$ rm /etc/nginx/nginx.conf
rm: cannot remove '/etc/nginx/nginx.conf': Operation not permitted
これらは権限が不足しているか、所有者が異なっている場合に発生します。
ls -lで権限と所有者を確認する方法
所有者・グループの見方
権限エラーが出たら、まずは ls -l コマンドで対象ファイルやディレクトリの所有者と権限を確認します。
$ ls -l /var/www/html/wp-content
drwxr-xr-x 5 www-data www-data 4096 Oct 2 10:30 uploads
-rw-r--r-- 1 www-data www-data 234 Oct 2 10:30 index.php
左から「パーミッション」「リンク数」「所有者」「グループ」「サイズ」「更新日時」「ファイル名」が表示されます。
例では uploads ディレクトリの所有者は www-data、グループも www-data になっています。
読み取り・書き込み・実行権限の確認ポイント
先頭の drwxr-xr-x が権限を表します。
- 先頭の
dはディレクトリを意味します。 - 続く9文字は3つに分割され、
r=読み取り、w=書き込み、x=実行を示します。
例:rw-r--r--
- 所有者:読み書き可能
- グループ:読み取りのみ
- その他:読み取りのみ
書き込みがないディレクトリはアップロードできず、実行権限がないとスクリプトが動かない場合があります。
よくあるエラー原因のパターン
- 所有者がrootのまま → Webサーバーユーザー(例:
www-data)が書き込めずエラー。 - 権限が狭すぎる → 例:
600に設定されていて他ユーザーが参照できない。 - 権限が広すぎる → 例:
777にして一時的に動くが、セキュリティリスクが大きい。
この確認を踏まえたうえで、chown・chmod で正しく修正します。
chown・chmodでの安全な修正手順
所有者を直す例(chown -R www-data:www-data)
WordPressのファイルは通常、Webサーバー(例:www-data ユーザー)が読み書きできる必要があります。所有者が root のままだとアップロードや更新に失敗します。その場合は以下のように修正します。
# 所有者とグループを www-data に変更(再帰的に)
sudo chown -R www-data:www-data /var/www/html
これで ls -l で確認すると、所有者とグループが揃い、WordPressが正しく動作するようになります。
権限を直す例(chmod 644 / chmod 755)
ファイルやディレクトリの権限が不適切な場合は、以下のように直します。
# ファイルを644に(所有者は読み書き可、他は読み取りのみ)
sudo find /var/www/html -type f -exec chmod 644 {} \;
# ディレクトリを755に(所有者は読み書き実行可、他は読み取り+実行のみ)
sudo find /var/www/html -type d -exec chmod 755 {} \;
これで「必要最小限の権限」に整えることができます。
数値指定と記号指定の違い
権限は数値でも記号でも指定可能です。
- 数値指定
644= 所有者にrw、グループとその他にr755= 所有者にrwx、グループとその他にrx
- 記号指定
chmod u+w file.txt # 所有者に書き込み権限を追加 chmod g-r file.txt # グループから読み取り権限を削除 chmod o= file.txt # その他の権限を全て削除
一括修正では数値指定が便利ですが、個別調整には記号指定が直感的です。
まとめ:権限修正の基本ルール
必ず確認してから変更する
権限エラーが出たときは、まず ls -l で所有者と権限を確認してから修正します。原因を見極めずに chmod 777 を多用すると、一時的に動いてもセキュリティリスクを抱え込むだけです。確認 → 修正 → 再確認の流れを徹底することが重要です。
必要最小限の権限を付与する
WordPressやLinux運用では、
- ファイルは基本
644 - ディレクトリは基本
755
を守れば多くのケースで安定して動作します。特別な要件がある場合のみ例外的に変更し、常に「最小権限の原則」を意識しましょう。
あわせて、サーバーの他のトラブルにも備えておくと安心です。例えば ディスク逼迫の初動対応 や 500エラーの切り分け方法 といった記事も参考になります。
権限エラーは定型対応を覚えておけば慌てず直せます。日常の運用フローに組み込み、トラブルを最短で解決できる体制を整えましょう。
参照リンク
- GNU Coreutils による
chmodの公式マニュアル: chmod invocation — GNU Coreutils (gnu.org) - WordPress の公式ドキュメント「ファイル権限を変更する方法」: Changing File Permissions – Advanced Administration Handbook (WordPress Developer Resources)
chmodのマニュアル(man7.org)による詳細な説明: chmod(1) — Linux manual page (man7.org)- WordPress ファイル/ディレクトリの権限ガイド(Kinsta): WordPress Permissions: Learn What They Are and Their Optimal Settings (Kinsta®)
