FOR BEGINNERS未経験向け

CLinux とサーバー基礎段1入口層仕組み

ファイルと権限の仕組み|誰が読めて、誰が書けるかを rwx で理解する

ファイルと権限の仕組み|誰が読めて、誰が書けるかを rwx で理解する

ls -l を打ったら、-rw-r--r-- 1 ec2-user ec2-user 1024 Jul 30 09:00 app.conf のような行が並んだ。左の記号が何なのか分からない。「Permission denied」と言われて動かない。調べると「chmod 755」「chmod 600」と出てくるが、なぜその数字なのかも分からない。この記事は、その1行の左端の読み方と、chmod・chown・sudo が何を変えるのかを、「箱と門番」のたとえで整理します。

この記事の結論

  • Linux のファイルには「誰が・何をしてよいか」の札が付いていて、ls -l の1行の左端に rwx の並びで出ます。
  • rwx が3組あるのは、門番が3種類いるからです。所有者・グループ・その他の順に並び、自分がどの門番に当たるかで、できることが決まります。
  • r は読む、w は書く、x は実行。ディレクトリの x は「中に入れる」という意味です。
  • chmod は「何をしてよいか」の札を、chown は「誰の物か」を変えます。755 のような数字は、rwx の並びを r=4・w=2・x=1 の足し算で書いただけです。
  • root は何でもできる鍵で、普段は使いません。一般ユーザーで入り、必要な1行だけ sudo で root の力を借ります。
  • EC2 の秘密鍵が「他人が読めると使えない」のも、IAM の「誰が何をしてよいか」も、この考え方の延長にあります。

ファイルとディレクトリは「箱と中身」

Linux では、すべてのデータがファイル(中身)とディレクトリ(箱)で整理されています。箱の中に箱を入れて木の形にし、一番上の箱が / です。黒い画面の読み方で、その木を pwd・ls・cd で歩きました。

この箱と中身のすべてに、「誰の物か」と「誰が何をしてよいか」の札が付いています。会社の書庫を思い浮かべてください。棚(ディレクトリ)ごとに入ってよい人が決まっていて、書類(ファイル)ごとに「閲覧のみ」「書き込み可」の印が押してある。Linux はこれを、1台の機械を何人もで使う前提で最初から組み込んでいます。

なぜそこまでするのか。サーバーは、人だけでなく Web サーバーやデータベースといったアプリも「ユーザー」として動いているからです。Web サーバーが設定ファイルを書き換えられたり、誰かのログを別のアプリが読めたりすると、事故になります。札は、人と人だけでなく、アプリとアプリを分けるためにもあるのです。

ls -l の1行の読み方: rwx が3組ある理由

ls -l の1行を、左から分解します。

-rw-r--r--  1 ec2-user ec2-user  1024 Jul 30 09:00 app.conf
部分 意味 この例では
先頭の1文字 種類。- はファイル、d はディレクトリ ファイル
次の9文字 権限。3文字ずつ3組 rw- / r– / r–
ec2-user(左) 所有者(このファイルの持ち主) ec2-user
ec2-user(右) グループ(持ち主の所属する集まり) ec2-user というグループ
1024 以降 大きさ・更新日時・名前 1024 バイト、app.conf

9文字が3組に分かれているのは、門番が3種類いるからです。

  1. 所有者(owner) — ファイルの持ち主本人に対する札。
  2. グループ(group) — 持ち主の所属する集まり(同じ部署)に対する札。
  3. その他(others) — それ以外の全員に対する札。

ファイルを開こうとした人がいると、Linux は「この人は所有者か? 違うならグループの一員か? どちらでもなければその他」と判定し、当てはまった組の札だけを見ます。上の例なら、所有者は読み書きでき、グループとその他は読むだけです。

THREE GATEKEEPERSrwx が3組ある理由

同じファイルでも、自分がどの門番に当たるかで結果が変わる

app.conf(-rw-r-----)の門

  • rw-所有者 通る読む・書く、どちらも
  • r--グループ 通る読むだけ
  • ---その他 止まるPermission denied
所有者か → グループの一員か → どちらでもなければその他。当てはまった組の札だけを見る

r・w・x の意味

文字 ファイルに対して ディレクトリに対して
r(read) 中身を読める 中にある名前の一覧を見られる
w(write) 中身を書き換えられる 中にファイルを作る・消す・名前を変えられる
x(execute) プログラムとして実行できる 中に入れる(通り抜けて中のファイルに到達できる)

ディレクトリの x は「入れる」です。ここがつまずきやすいところで、r だけあって x が無いと「名前は見えるのに開けない」、x だけあって r が無いと「名前を知っていれば開けるが一覧は出ない」という状態になります。中身を使わせたい箱には r と x をセットで付けます。

READ OR WRITE札の組み合わせ

読めるか・書けるかで、ファイルの居場所が決まる

読める →

見るだけ(r--)

公開の設定ファイル。他人は読めるが変えられない

自分の物(rw-)

所有者の普段の状態。自分のホームのファイル

触れない(---)

他人の秘密鍵。EC2 の .pem は他人から見るとこれ

投函だけ(-w-)

入れられるが中は見えない箱。珍しい形

書ける →

x(実行・入れる)は、この上に重なる

CHECK 1ここまでの確認

ls -l で -rw-r----- と出たファイルを、所有者でもグループの一員でもない人が開くとどうなる?

答えと解説

答え: 2. 読めない

rwx は所有者・グループ・その他の順に3組並びます。3組目が --- なので、その他の人は何もできません。「ls -l の1行の読み方」の章を読み直してください。

chmod と chown は何を変えるか

札を変える命令は2つあります。chmod は「何をしてよいか」(rwx の並び)を変え、chown は「誰の物か」(所有者とグループ)を変えます。書庫でいえば、chmod は書類に押す「閲覧のみ」の印を変え、chown は書類の持ち主の名札を貼り替えます。

755 は「並びを数で書いた」だけ

chmod 755 script.sh の 755 は、暗号ではありません。r=4・w=2・x=1 と決めて、組ごとに足した数です。

並び 計算 数 意味
rwx 4+2+1 7 読む・書く・実行、すべて
rw- 4+2 6 読む・書く
r-x 4+1 5 読む・実行
r– 4 4 読むだけ
— 0 0 何もできない

だから 755 は「所有者 rwx・グループ r-x・その他 r-x」、600 は「所有者 rw-・グループ —・その他 —」です。数字を見たら、3桁をそれぞれ3文字に戻して読めば、誰に何を許しているかが分かります。文字で chmod u+x script.sh(所有者に x を足す)と書く方法もあり、意味は同じです。

777 は「誰でも何でもできる」で、札を外したのと同じです。動かないときに 777 にするのではなく、「誰が動かしていて、何が足りないか」を ls -l で確かめ、その相手にだけ足りない分を足します。

chown は持ち主を変える

chown ec2-user:ec2-user app.conf は、所有者とグループを ec2-user に変えます。Web サーバーが書くべきファイルの持ち主が別の人になっていて「Permission denied」になる、という事故は、chmod ではなく chown で直します。持ち主を変えられるのは、次の章で出てくる root だけです。

CHECK 2ここまでの確認

chmod 755 の 5 が表しているのは?

答えと解説

答え: 1. r-x(読む・実行はできるが、書けない)

r=4・w=2・x=1 を足した数です。5 = 4 + 1 なので r-x。「chmod と chown は何を変えるか」の章の対応表を読み直してください。

root と sudo: 何でもできる鍵は、普段は使わない

root は、権限の札をすべて無視できる特別なユーザーです。どのファイルも読め、書け、持ち主を変えられ、システムの設定を変えられます。書庫でいえば、全部の棚と書類の合鍵を持った館長です。

強いからこそ、普段は使いません。root で打った命令は打ち間違いも最高権限で実行され、ファイルを消す命令の対象を間違えれば、システムごと消えます。EC2 の Amazon Linux で最初のユーザーが root ではなく ec2-user なのは、この考え方によるものです。

代わりに使うのが sudo です。一般ユーザーのまま、命令の頭に sudo を付けたその1行だけを root の権限で実行します。誰が・いつ・何を sudo で実行したかは記録に残るので、あとから追えます。

  root でログインして作業 一般ユーザー + sudo
権限の効き方 打つ命令すべてが最高権限 sudo を付けた1行だけ
打ち間違いの影響 そのまま最高権限で実行される 一般ユーザーの範囲で止まる
記録 誰が打ったか分からない 誰が・いつ・何を、が残る
使う場面 原則使わない 設定の変更・ソフトの導入など必要なときだけ

LEAST PRIVILEGEやりがちな形を直す

何でもできる鍵は、必要な1行だけに絞る

やりがちな形

安全な形

やりがちな形: root でログインして作業する

安全な形: 一般ユーザーで入り、必要な1行だけ sudo

やりがちな形: 動かないので 777 にする

安全な形: ls -l で見て、足りない相手に足りない分だけ

やりがちな形: 鍵ファイルを共有フォルダに置く

安全な形: 自分だけが読める 600 にして、自分の場所に置く

IAM の「ルートユーザーを日常で使わない」も同じ考え方

「一般ユーザーで入り、必要な1行だけ sudo」が、Linux を触る人の基本の姿勢です。これは次の記事以降で扱うクラウドの権限でも、そのまま同じ形で出てきます。

クラウドで効く場面: EC2 の鍵と IAM

ここまでの話は、Linux の中だけの話ではありません。AWS を触ると、最初の日から2か所で効きます。

EC2 の秘密鍵。 EC2 とは何かで立てたサーバーに SSH で入るとき、手元に秘密鍵のファイル(.pem)を置きます。この鍵が「他人も読める」札のままだと、SSH は「秘密ではない鍵」として使うのを断ります。AWS の公式ユーザーガイドでも、接続の前に鍵を自分だけが読める形(chmod 400)にする手順が置かれています。権限の札は飾りではなく、鍵が鍵として成り立つ条件です。この続きは次の記事で扱います。

READ ALSO — 未経験向け・段1 入口 SSH とは何か|鍵と接続の仕組みを「合鍵」で理解して、EC2 の1台に入る

IAM の考え方。 AWS の IAM とは何かは、「誰が・どのサービスに・何をしてよいか」を決める仕組みです。主語が「ユーザー・グループ・ロール」になり、対象が「ファイル」から「S3 のバケット」「EC2 のインスタンス」に広がるだけで、骨組みは rwx と同じです。「ルートユーザーを日常で使わない」という IAM の原則も、root と sudo の関係そのものです。

Linux の権限 IAM 共通の考え方
所有者・グループ・その他 ユーザー・グループ・ロール 誰に対する札か
r・w・x 読む(Get・List)・書く(Put・Delete)などの操作 何をしてよいか
root と sudo ルートユーザーと、権限を絞った IAM ユーザー 何でもできる鍵は普段使わない

CHECK 3ここまでの確認

EC2 に SSH でつなぐ秘密鍵のファイルが「他人も読める」状態だと、SSH はどうする?

答えと解説

答え: 2. 鍵を無視して接続を断る

他人が読める鍵は秘密ではないので、SSH はその鍵を使いません。自分だけが読める形(600 か 400)に直す必要があります。「クラウドで効く場面」の章を読み直してください。

まとめ

Linux のファイルとディレクトリには「誰の物か」と「誰が何をしてよいか」の札が付いていて、ls -l の左端に rwx が3組並びます。3組は所有者・グループ・その他という3種類の門番で、自分がどれに当たるかで、できることが決まります。r は読む、w は書く、x は実行で、ディレクトリの x は「入れる」。chmod は札を、chown は持ち主を変え、755 は rwx を 4・2・1 の足し算で書いた数です。root は何でもできる鍵なので普段は使わず、一般ユーザー+sudo で必要な1行だけ。この考え方が、EC2 の鍵ファイルにも、IAM の「誰が何をしてよいか」にも、そのままつながります。

参照ソース

SCOREこの記事の確認テスト

0/3問 正解

各章の「ここまでの確認」に答えると、ここに集まります。結果はこの端末のブラウザにだけ残り、サーバには送りません。

FAQよくある質問

777 にすれば動くと聞きましたが、何が問題ですか?

777 は「誰でも読めて・書けて・実行できる」で、そのファイルを守るものが何も無くなります。同じ機械にいる別のユーザーやアプリが中身を書き換えられ、それが設定ファイルや実行ファイルなら乗っ取りの入口になります。動かないときは「誰が動かしていて、何が足りないか」を ls -l で見て、その相手にだけ足りない権限を足します。

sudo と root でログインするのは何が違いますか?

root でログインすると、打つ命令すべてが最高権限で動き、打ち間違いも最高権限で実行されます。sudo は一般ユーザーのまま、必要な1行だけを root の権限で動かし、誰がいつ何を実行したかが記録に残ります。普段は一般ユーザーで入り、必要なときだけ sudo を頭に付ける、が基本の使い方です。

ディレクトリの x(実行)は何を意味しますか?

ディレクトリに対する x は「その中に入れる(通り抜けられる)」という意味です。r があれば中の名前一覧を見られ、x があれば中のファイルに到達できます。r だけあって x が無いと、名前は見えるのに開けない、という状態になります。中身を使わせたいディレクトリには r と x をセットで付けるのが普通です。

SAME TRACK同じ領域の記事

黒い画面の読み方|ターミナルで「いまどこにいて、何ができるか」を知る
黒い画面の読み方|ターミナルで「いまどこにいて、何ができるか」を知る 段0 土台とは
Linux とは何か|Windows との違いと、サーバーがほぼ Linux で動いている理由
Linux とは何か|Windows との違いと、サーバーがほぼ Linux で動いている理由 段0 土台とは
SSH とは何か|鍵と接続の仕組みを「合鍵」で理解して、EC2 の1台に入る
SSH とは何か|鍵と接続の仕組みを「合鍵」で理解して、EC2 の1台に入る 段1 入口仕組み