chmod パーミッション設定マニュアル
パーミッションとは?
Unix系OSでは、ファイルやディレクトリに対するユーザーやグループのアクセスを制御するためにパーミッション(権限)を使用します。正しく設定されていないと、セキュリティリスクにつながります。
パーミッションの基本
ファイルのパーミッション
| パーミッション | 表記 | 意味 |
|---|---|---|
| 読み取り (read) | r | ファイルを読み取る権限 |
| 書き込み (write) | w | ファイルにデータを書き込む/削除する権限 |
| 実行 (execute) | x | ファイル(プログラムやスクリプト)を実行する権限 |
| 権限なし | - |
ディレクトリのパーミッション
| パーミッション | 表記 | 意味 |
|---|---|---|
| 読み取り (read) | r | ディレクトリ内のファイル名リストを読み取る権限 |
| 書き込み (write) | w | ディレクトリ内でのファイルの作成、削除を許可 |
| 実行 (execute) | x | ディレクトリ内のファイルやサブディレクトリにアクセスする権限 |
⚠️ ディレクトリの実行権限がなければ、そのディレクトリに入ることはできません。
ユーザークラス
| クラス | 説明 |
|---|---|
| 所有者 (user) | ファイルを作成したユーザー |
| 所有グループ (group) | ファイルの作成者が属するグループ |
| その他 (others) | その他全員 |
パーミッションの表示
ls -l出力例:
-rwxr-xr-- 1 user group 12345 Jan 23 12:34 example.txt| 項目 | 意味 |
|---|---|
-rwxr-xr-- | ファイルパーミッション |
1 | リンクの数 |
user | ファイルの所有者 |
group | ファイルの所有グループ |
12345 | ファイルサイズ(バイト) |
Jan 23 12:34 | 最終更新日時 |
example.txt | ファイル名 |
パーミッションの見方
-rwxr-xr-- の各文字の意味:
| 位置 | 例 | 意味 |
|---|---|---|
| 1文字目 | - | ファイルの種別(d=ディレクトリ、-=ファイル) |
| 2〜4文字目 | rwx | 所有者のパーミッション(読み取り、書き込み、実行) |
| 5〜7文字目 | r-x | 所有グループのパーミッション(読み取り、実行) |
| 8〜10文字目 | r-- | その他全員のパーミッション(読み取りのみ) |
パーミッションの変更(chmod)
chmodコマンドで3桁の数値を指定してパーミッションを設定します。
chmod 644 example.txt権限の数値
| 権限 | 数値 |
|---|---|
| 読み取り可能 | 4 |
| 書き込み可能 | 2 |
| 実行可能 | 1 |
各桁は権限の合計値です。
例:chmod 644
| クラス | 合計 | 計算 | 権限 | 表記 |
|---|---|---|---|---|
| 所有者 | 6 | 4+2+0 | 読み取り、書き込み | rw- |
| グループ | 4 | 4+0+0 | 読み取りのみ | r— |
| その他 | 4 | 4+0+0 | 読み取りのみ | r— |
チートシート
基本的なパーミッション数値
| 数値 | 権限 | 表記 |
|---|---|---|
| 0 | 何の権限もなし | --- |
| 1 | 実行のみ | —x |
| 2 | 書き込みのみ | -w- |
| 3 | 書き込みと実行 | -wx |
| 4 | 読み取りのみ | r— |
| 5 | 読み取りと実行 | r-x |
| 6 | 読み取りと書き込み | rw- |
| 7 | 読み取り、書き込み、実行 | rwx |
よく使うchmodコマンド
| 数値 | 所有者 | グループ | 他のユーザー | 用途 |
|---|---|---|---|---|
| 700 | 全権限 | なし | なし | 個人用スクリプト |
| 755 | 全権限 | 読み取り・実行 | 読み取り・実行 | 公開スクリプト/ディレクトリ |
| 644 | 読み書き | 読み取り | 読み取り | 一般的なファイル |
| 600 | 読み書き | なし | なし | 秘密鍵、.env |
| 666 | 読み書き | 読み書き | 読み書き | 共有ファイル |
| 400 | 読み取り | なし | なし | 読み取り専用 |
実際の使用例
SSH秘密鍵
chmod 600 ~/.ssh/id_rsa所有者のみ読み書き可能。秘密鍵の不正利用を防ぐ。
Webサーバーのファイル
# HTMLファイル
chmod 644 index.html
# ディレクトリ
chmod 755 /var/www/html
# 実行スクリプト
chmod 755 script.sh環境変数ファイル
chmod 600 .env機密情報を含むファイルは所有者のみアクセス可能に。
共同作業用ディレクトリ
chmod 775 /shared/project所有者とグループメンバーが読み書き・実行可能。
スクリプトに実行権限を付与
chmod 755 deploy.sh
# または
chmod +x deploy.sh注意事項
⚠️ パーミッションは正しく設定されていないと、悪意のある第三者にファイルを不正に見られたり書き換えられる可能性があります。
原則:必要最小限の権限をユーザーに与えることで、セキュリティリスクを減らします。
