権限の基本
ストーリー
「ファイルに権限ってあるんですよね?」
「そう。誰が読めて、誰が書けて、誰が実行できるかを制御しているんだ」
「
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)
ファイルの場合
| 記号 | 意味 | 説明 |
|---|---|---|
r | Read(読み取り) | ファイルの内容を読める |
w | Write(書き込み) | ファイルの内容を変更できる |
x | Execute(実行) | ファイルをプログラムとして実行できる |
- | 権限なし | その操作ができない |
ディレクトリの場合
| 記号 | 意味 | 説明 |
|---|---|---|
r | Read | ディレクトリ内のファイル一覧を見られる |
w | Write | ディレクトリ内にファイルを作成/削除できる |
x | Execute | ディレクトリに入れる(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 で使います)。
| 権限 | 数字 | 計算 |
|---|---|---|
--- | 0 | 0+0+0 |
--x | 1 | 0+0+1 |
-w- | 2 | 0+2+0 |
-wx | 3 | 0+2+1 |
r-- | 4 | 4+0+0 |
r-x | 5 | 4+0+1 |
rw- | 6 | 4+2+0 |
rwx | 7 | 4+2+1 |
例
| 権限 | 数字表記 |
|---|---|
-rw-r--r-- | 644 |
-rwxr-xr-x | 755 |
-rwx------ | 700 |
drwxr-xr-x | 755 |
計算方法:
rw-= 4 + 2 + 0 = 6r--= 4 + 0 + 0 = 4r--= 4 + 0 + 0 = 4- 合わせて
644
よく使われる権限
| 数字 | 権限 | 用途 |
|---|---|---|
| 644 | rw-r--r-- | 通常のファイル(テキスト、設定など) |
| 755 | rwxr-xr-x | 実行可能ファイル、ディレクトリ |
| 700 | rwx------ | プライベートなスクリプト |
| 600 | rw------- | 秘密の設定ファイル(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分