【脱・初心者】Linuxの「権限(パーミッション)」完全攻略!Permission deniedに勝つ方法

Linux

「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種類があり、それぞれに「数字」が割り当てられています。
よく見る 755644 という数字は、これを足し算したものです。

記号 意味 数字
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で、いろいろな設定を試してみるのがおすすめです。

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

▼基本コマンド一覧に戻る

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

【初心者向け】Linux基本コマンド20選!絶対覚えるべき一覧と効率的な練習環境の作り方【実例付き】
Linux初心者必見!「コマンドが多すぎて覚えられない」という悩みを解決します。サーバー構築・運用で頻繁に使う「本当に必要な20個」だけを厳選。ファイル操作、システム確認、権限変更まで、現場で役立つコマンドを実例付きで解説します。

コメント