【Bash講座 第3回】「許可がありません」と戦う!Linux権限(パーミッション)完全攻略

bash講座

【Bash講座 第3回】なぜファイルが開けない?Linuxセキュリティの要「権限」を学ぶ

こんにちは!「リナックス先生」です。
前回は、パスとワイルドカードを使ってファイルを自由に指定する方法を学びましたね。
コウ君、その後サーバー操作で困ったことはない?

コウ君

先生!実は…設定ファイルを編集しようとしたら、「Permission denied(許可がありません)」って怒られて、何もできないんです!
僕はこのサーバーの契約者なのに、なんで拒否されるんですか!?

リナックス先生

それはLinuxが「マルチユーザーOS」だからよ。
契約者だろうと何だろうと、ルール(権限)を持たないユーザーには指一本触れさせない。
それがLinuxの堅牢なセキュリティを守っているの。
今回は、このエラーを解決するための「パーミッション(権限)」と、管理者の伝家の宝刀「sudo」について徹底解説するわ!

第3回となる今回は、謎の数字「755」や「644」の正体、そして chmodchown といった管理者必須コマンドをマスターします。
これを理解すれば、エラーが出ても焦らず対処できるようになりますよ。

本講座のカリキュラム(全12回)

AlmaLinux 9 (RHEL 9互換) 環境を前提に、基礎から応用までステップバイステップで進めます。

  1. Bash入門編:シェルとカーネルの関係、CUIの哲学、環境構築
  2. ファイル操作の極意:絶対パス・相対パスと「ワイルドカード」の魔術
  3. 【今回】権限(パーミッション)とユーザー:chmod, chown, sudoの仕組みを完全理解
  4. 入出力リダイレクトとパイプ:Linuxの真骨頂!コマンド同士を連携させる技術
  5. テキスト処理の基本:cat, head, tail, less…ファイルの中身を覗く道具たち
  6. 最強のエディタ「Vi/Vim」入門:サーバー内でテキストを編集する必須スキル
  7. シェルスクリプトの第一歩:ファイルにまとめて自動実行!変数と引数の基礎
  8. 条件分岐(if文):サーバーの状態を見て「判断」できるスクリプトを作る
  9. 繰り返し処理(for/while文):面倒な単純作業を1秒で終わらせるループ処理
  10. テキスト処理の応用:grep, sed, awk…ログ解析の達人になるための三種の神器
  11. 実践・自動化スクリプト:バックアップと監視を自動化し、Cronで定期実行する
  12. 総仕上げ:自作スクリプトの集大成と、エンジニアとしての歩き方

1. ユーザーとグループ:Linux社会の階級制度

権限の話をする前に、Linuxにおける「登場人物」を知る必要があります。
Linuxは同時に複数の人がアクセスすることを前提に作られているため、厳格な階級社会が存在します。

(1) スーパーユーザー (root)

神様です。あらゆるファイルの読み書き、削除、システムの破壊まで、全ての権限を持っています。
プロンプトが # になっている時は、あなたが神の状態です。

(2) 一般ユーザー

人間です。自分のホームディレクトリ(/home/ユーザー名)の中だけは自由にできますが、システムの大事なファイルには触れません。
プロンプトは $ です。

(3) グループ

ユーザーをまとめる「部署」のようなものです。
例えば「開発部グループ」に権限を与えれば、そのグループに属する全員がファイルを編集できるようになります。

2. 暗号解読!「ls -l」の読み方

では、問題の「パーミッション」を確認してみましょう。
ls -l コマンドを打つと出てくる、左側の謎の文字列に注目してください。

[root@localhost ~]# ls -l
total 4
-rw-r--r--. 1 root root 1234 Jan 1 10:00 file.txt
drwxr-xr-x. 2 root root    6 Jan 1 10:00 dir

この -rw-r--r--drwxr-xr-x がパーミッションを表しています。
これは以下のように分解して読みます。

種別(1文字) 所有者(3文字) グループ(3文字) 他人(3文字)
- (ファイル)
d (ディレクトリ)
rwx
(持ち主の権限)
r-x
(同じGの権限)
r--
(赤の他人の権限)

アルファベットの意味

  • r (Read):読む権限。ファイルの中身を見れる。
  • w (Write):書く権限。書き換えや削除ができる。
  • x (eXecute):実行する権限。プログラムとして起動できる。(ディレクトリの場合は「中に入れる」という意味になる)
  • -:権限なし。
コウ君

なるほど!
r-- なら「読むだけOK」、rw- なら「読み書きOK」ってことですね。

3. 権限を変更する:chmod コマンド

権限を変更するには chmod(チェンジ・モード)コマンドを使います。
指定方法には「数値」と「記号」の2種類がありますが、現場では圧倒的に「数値」が使われます。

数値での指定(足し算)

各権限には点数が決まっており、その合計値で指定します。

  • r (読む) = 4
  • w (書く) = 2
  • x (実行) = 1

これを「所有者・グループ・他人」の順に3桁並べます。

リナックス先生

よく使う組み合わせは以下の2つよ。これだけは暗記しなさい。

数値 意味 用途
755
(rwx r-x r-x)
自分はフル権限。
他人は見るのと実行だけ。
プログラム、ディレクトリの標準。
(Web公開するフォルダなど)
644
(rw- r– r–)
自分は読み書きOK。
他人は見るだけ。
一般的なファイルの標準。
(HTMLファイル、設定ファイルなど)
# file.txt を「自分は書き込めるけど、他人は見るだけ」にする
[root@localhost ~]# chmod 644 file.txt

# script.sh を「誰でも実行できる」ようにする
[root@localhost ~]# chmod 755 script.sh
リナックス先生

【危険】 chmod 777 は「誰でも読み書き実行し放題」という無法地帯モードよ。
トラブル解決のために一時的にやる人がいるけど、セキュリティホールになるから絶対におすすめしないわ。

4. 持ち主を変更する:chown コマンド

ファイルを作成すると、作成した人が「所有者」になります。
rootで作ったファイルを一般ユーザーに使わせたい時は、所有者を変更する必要があります。
それが chown(チェンジ・オーナー)コマンドです。

# 書式: chown [ユーザー名]:[グループ名] [ファイル名]

# file.txt の持ち主を kou さんに変更する
[root@localhost ~]# chown kou:kou file.txt

# ディレクトリの中身ごと全部変更する(-R オプション)
[root@localhost ~]# chown -R kou:kou /var/www/html

Webサーバー構築などで「ファイルをアップロードできない!」という時は、だいたいこの所有者設定が間違っています。

5. 管理者の力を借りる:sudo コマンド

最後に、最も重要なコマンドを紹介します。
普段は安全な「一般ユーザー」で作業し、必要な時だけ「神(root)」の力を借りる。
それが sudo(スーパーユーザー・ドゥ)です。

コウ君

なるほど! 最初のエラーは、一般ユーザーの僕が、root権限が必要なファイルを触ろうとしたからダメだったんですね。
じゃあ、コマンドの前に sudo を付ければ…

# 普通にやるとエラー
[kou@localhost ~]$ dnf update
Error: This command has to be run with superuser privileges.

# sudo を付けると成功!(自分のパスワードを聞かれます)
[kou@localhost ~]$ sudo dnf update
Last metadata expiration check: ...
Dependencies resolved.

AlmaLinuxなどのRHEL系やUbuntuでは、最初のユーザーは自動的に「sudoを使えるグループ(wheelグループなど)」に入っています。
サーバー管理は基本的に、「rootでログインするのではなく、一般ユーザーでログインしてsudoを使う」のが鉄則です。

次回予告:コマンドの結果をファイルに保存したい!

第3回は、Linuxのセキュリティの根幹である「パーミッション」と「ユーザー管理」について解説しました。
chmod 755chmod 644 は、今後息をするように使うことになるので、ぜひ指に覚えさせてください。

次回は、Linux操作が劇的に便利になる「リダイレクト(>)」「パイプ(|)」について解説します。
「コマンドの結果をファイルに保存する」「大量のログファイルからエラーの行だけ抜き出す」といった、プロっぽい操作ができるようになりますよ。

リナックス先生

次回までに、自分のホームディレクトリに適当なファイルを作って、chmod 000 にしてみて。
持ち主なのに何もできなくなる(読むことすらできない)不思議な体験ができるわよ。試してみてね!

▼本講座推奨!AlmaLinux 9がすぐ使えるVPS

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

コメント