「Permission denied」…嫌な言葉ですよね
こんにちは!「リナックス先生」です。
コマンドを叩いていて、こんなエラーメッセージに弾かれたことはありませんか?
-bash: ./script.sh: Permission denied
あるいは、WordPressで画像をアップロードしようとしたら「ディレクトリの書き込み権限がありません」と怒られたり。
あります!
自分のサーバーなのに「拒否(denied)」されるなんて納得いきません!
どうすれば直るんですか?
それはLinuxが「セキュリティ」を守ってくれている証拠よ。
誰でもファイルを書き換えられたらウイルス入り放題でしょ?
今回は、この扉を開ける鍵である「パーミッション(権限)」と「所有者」について解説するわ。
1. そもそも「権限」ってどこに書いてあるの?
ls -l コマンドを叩くと出てくる、左側の謎の文字列。これが権限の正体です。
[root@localhost ~]# ls -l -rwxr-xr-x. 1 root root 123 Jan 1 12:00 script.sh
一番左の -rwxr-xr-x に注目してください。
これを3文字ずつ、3つのブロックに分解して読みます。
| ブロック | 対象 | 意味 |
|---|---|---|
| 1つ目 (rwx) | 所有者 (Owner) | ファイルの持ち主ができること |
| 2つ目 (r-x) | グループ (Group) | 持ち主と同じグループの人ができること |
| 3つ目 (r-x) | その他 (Other) | 上記以外の赤の他人ができること |
2. アルファベットと数字の意味
権限には「読む・書く・実行する」の3種類があり、それぞれに「数字」が割り当てられています。
よく見る 755 や 644 という数字は、これを足し算したものです。
| 記号 | 意味 | 数字 |
|---|---|---|
| r (read) | 読む(中身を見る) | 4 |
| w (write) | 書く(保存・削除) | 2 |
| x (execute) | 実行する(プログラムとして動かす) | 1 |
| – | 権限なし | 0 |
よくある「755」の計算式
- 所有者: 読む(4) + 書く(2) + 実行(1) = 7 (全部OK!)
- グループ: 読む(4) + 実行(1) = 5 (書き込み禁止)
- その他: 読む(4) + 実行(1) = 5 (書き込み禁止)
これを並べて「755」となります。
「自分は書き込めるけど、他人は見るだけ」という一般的な設定です。
3. 権限を変更するコマンド「chmod」
権限(Mode)を変更(Change)するコマンドです。
# 自分(7)・グループ(5)・他人(5) に設定する chmod 755 script.sh # 全員にフル権限を与える(危険!テスト用) chmod 777 script.sh
4. もっと大事な「所有者」の話
実は、WordPressのエラーの大半は「権限(755とか)」ではなく、「持ち主(所有者)」が間違っていることが原因です。
Webサーバー(Apache)は、通常 apache または www-data というユーザー名で動いています。
しかし、あなたがSFTPソフトやrootユーザーでファイルをアップロードすると、持ち主が root になってしまいます。
- ファイル持ち主: root
- 書き込みたい人: apache(Webサーバー)
これでは、いくら権限設定しても「他人のファイル」なので書き込めません。
所有者を変更するコマンド「chown」
所有者(Owner)を変更(Change)するコマンドです。
# wp-content ディレクトリの持ち主を apache に変更する # -R は「中身も全部まとめて」という意味 chown -R apache:apache /var/www/html/wp-content
WordPressで「プラグインの更新に失敗しました」や「画像がアップロードできません」と言われたら、まずはこのコマンドを試してください。
9割解決します。
まとめ:エラーが出ても焦らない
- chmod: 「誰が何をしていいか」のルールブック(755, 644)
- chown: 「誰の持ち物か」の名札
この2つを理解していれば、Permission denied はもう怖くありません。
「書き込めない」と言われたら、「持ち主は誰?」「書き込み権限(w)はある?」を確認する癖をつけましょう!
なるほど!
僕がrootでアップロードした画像は、Webサーバー君から見たら「怖いrootさんの持ち物」だから手出しできなかったんですね。
▼コマンド練習環境を作るなら
権限変更は失敗するとシステムが動かなくなることもあります。
まずは壊しても良い練習用VPSで、いろいろな設定を試してみるのがおすすめです。

▼基本コマンド一覧に戻る
chmod/chown以外の基本コマンドを確認したい方はこちら。



コメント