LESSON 30分

権限の基本

ストーリー

「ファイルに権限ってあるんですよね?」

「そう。誰が読めて、誰が書けて、誰が実行できるかを制御しているんだ」

ls -l で見える謎の文字列ですか?」

「そう!rwxr-xr-- みたいなやつ。今日はその意味を解説するよ」


権限とは

Linuxでは、すべてのファイルとディレクトリにアクセス権限が設定されています。

  • 誰が(ユーザー)
  • 何を(読み/書き/実行)できるか

を制御します。


権限を確認する

bash
ls -l

出力例:

-rw-r--r-- 1 user group 1234 Jan 27 10:00 file.txt
drwxr-xr-x 2 user group 4096 Jan 27 10:00 directory

権限表記の読み方

-rw-r--r--

この10文字を分解すると:

位置文字意味
1文字目-ファイルの種類
2-4文字目rw-所有者の権限
5-7文字目r--グループの権限
8-10文字目r--その他のユーザーの権限

ファイルの種類(1文字目)

記号意味
-通常のファイル
dディレクトリ
lシンボリックリンク

権限の種類(r, w, x)

ファイルの場合

記号意味説明
rRead(読み取り)ファイルの内容を読める
wWrite(書き込み)ファイルの内容を変更できる
xExecute(実行)ファイルをプログラムとして実行できる
-権限なしその操作ができない

ディレクトリの場合

記号意味説明
rReadディレクトリ内のファイル一覧を見られる
wWriteディレクトリ内にファイルを作成/削除できる
xExecuteディレクトリに入れる(cdできる)

3種類のユーザー

種類英語説明
所有者User (u)ファイルを作った人
グループGroup (g)所有者が属するグループ
その他Other (o)上記以外の全員

準備: サンプルファイルを作る

bash
cd ~
mkdir permission-practice
cd permission-practice

# 通常のファイル
echo "Hello World" > hello.txt

# 実行可能なスクリプト
cat > script.sh << 'EOF'
#!/bin/bash
echo "This is a script"
EOF

# 権限を確認
ls -l

権限を読んでみよう

例1: -rw-r--r--

-rw-r--r--
│├─┤├─┤├─┤
│ │  │  └── その他: r-- (読み取りのみ)
│ │  └── グループ: r-- (読み取りのみ)
│ └── 所有者: rw- (読み書き可能)
└── 通常のファイル

意味: 所有者は読み書きできる。グループとその他は読み取りのみ。

例2: drwxr-xr-x

drwxr-xr-x
│├─┤├─┤├─┤
│ │  │  └── その他: r-x (読み取りと実行)
│ │  └── グループ: r-x (読み取りと実行)
│ └── 所有者: rwx (すべて可能)
└── ディレクトリ

意味: 誰でもこのディレクトリに入れて中身を見られる。ただし、ファイルの追加/削除は所有者のみ。

例3: -rwx------

-rwx------
│├─┤├─┤├─┤
│ │  │  └── その他: --- (権限なし)
│ │  └── グループ: --- (権限なし)
│ └── 所有者: rwx (すべて可能)
└── 通常のファイル

意味: 所有者だけが読み書き実行できる。他の人はアクセス不可。


数字での表記

権限は数字でも表せます(後で chmod で使います)。

権限数字計算
---00+0+0
--x10+0+1
-w-20+2+0
-wx30+2+1
r--44+0+0
r-x54+0+1
rw-64+2+0
rwx74+2+1

権限数字表記
-rw-r--r--644
-rwxr-xr-x755
-rwx------700
drwxr-xr-x755

計算方法:

  • rw- = 4 + 2 + 0 = 6
  • r-- = 4 + 0 + 0 = 4
  • r-- = 4 + 0 + 0 = 4
  • 合わせて 644

よく使われる権限

数字権限用途
644rw-r--r--通常のファイル(テキスト、設定など)
755rwxr-xr-x実行可能ファイル、ディレクトリ
700rwx------プライベートなスクリプト
600rw-------秘密の設定ファイル(SSH鍵など)

ハンズオン

bash
# 1. 権限を確認
ls -l

# 2. 各ファイルの権限を読み取る
# hello.txt の権限は?
# script.sh の権限は?

# 3. ホームディレクトリの権限を確認
ls -ld ~

# 4. /etc/passwd の権限を確認(重要なシステムファイル)
ls -l /etc/passwd

# 5. /etc/shadow の権限を確認(パスワードハッシュ)
ls -l /etc/shadow

権限エラーの例

読み取り権限がない

bash
# 他のユーザーのプライベートファイルを読もうとすると
cat /root/secret.txt
# Permission denied

書き込み権限がない

bash
# システムファイルを変更しようとすると
echo "test" >> /etc/hosts
# Permission denied

実行権限がない

bash
# 実行権限のないスクリプトを実行しようとすると
./script.sh
# Permission denied

まとめ

概念説明
r (read)読み取り権限
w (write)書き込み権限
x (execute)実行権限
User (u)ファイル所有者
Group (g)所有者のグループ
Other (o)その他のユーザー

覚え方

-rwxr-xr-x = 755
 ││││││││└ その他: x=1
 │││││││└─ その他: -=0
 ││││││└── その他: r=4 → 計5
 │││││└─── グループ: x=1
 ││││└──── グループ: -=0
 │││└───── グループ: r=4 → 計5
 ││└────── 所有者: x=1
 │└─────── 所有者: w=2
 └──────── 所有者: r=4 → 計7

チェックリスト

  • ls -l で権限を確認できた
  • rwx の意味を理解した
  • 所有者/グループ/その他の違いを理解した
  • 数字表記(644, 755など)を理解した

次のステップへ

権限の基本を理解できましたか?

次のセクションでは chmod コマンドを学びます。 ファイルの権限を変更する方法をマスターしましょう!


推定読了時間: 30分