開発ツール
Linuxのchmodコマンド・パーミッション設定の基礎
Linuxのファイルパーミッションは、セキュリティの基本です。chmodコマンドを使って適切な権限を設定することで、不正アクセスを防ぎつつ必要な操作を許可できます。この記事では、パーミッションの仕組みからchmodの使い方まで解説します。
ファイルパーミッションとは
Linuxでは、すべてのファイルとディレクトリに3種類のアクセス権が設定されています:
- r(read):読み取り権限 — ファイル内容の閲覧、ディレクトリの一覧表示
- w(write):書き込み権限 — ファイルの編集、ディレクトリ内のファイル作成・削除
- x(execute):実行権限 — プログラムの実行、ディレクトリへの移動(cd)
3つの対象(Owner / Group / Others)
権限は3つの対象それぞれに個別に設定されます:
$ ls -la index.html -rwxr-xr-- 1 user staff 1024 Mar 15 10:30 index.html │││ │││ │││ │││ │││ └── Others(その他のユーザー): r-- (読み取りのみ) │││ └── Group(グループ): r-x (読み取り+実行) └── Owner(所有者): rwx (すべて許可)
数字表記の仕組み
chmodの数字表記では、各権限に数値を割り当てて合算します:
| 権限 | 記号 | 数値 |
|---|---|---|
| 読み取り | r | 4 |
| 書き込み | w | 2 |
| 実行 | x | 1 |
例:rwx = 4 + 2 + 1 = 7、r-x = 4 + 0 + 1 = 5、r-- = 4 + 0 + 0 = 4
よく使うパーミッション設定
| 数値 | 記号 | 用途 |
|---|---|---|
| 755 | rwxr-xr-x | 実行可能スクリプト・ディレクトリ |
| 644 | rw-r--r-- | 一般ファイル(HTML、CSS、画像) |
| 600 | rw------- | 秘密鍵・設定ファイル(SSHキーなど) |
| 700 | rwx------ | プライベートディレクトリ |
| 777 | rwxrwxrwx | 全権限(セキュリティリスク・非推奨) |
| 400 | r-------- | 読み取り専用ファイル |
記号表記によるchmod
# 所有者に実行権限を追加 chmod u+x script.sh # グループから書き込み権限を削除 chmod g-w config.yaml # その他に読み取り権限を追加 chmod o+r public.html # 全員に読み取り権限を設定 chmod a+r README.md # 再帰的に適用(ディレクトリ以下すべて) chmod -R 755 /var/www/html
注意:chmod 777はすべてのユーザーに全権限を与えるため、セキュリティリスクが非常に高くなります。本番環境では絶対に使わないでください。
よくある質問
chmodとchownの違いは?
chmodはパーミッション(権限)を変更、chownは所有者(owner)を変更するコマンドです。
ディレクトリに実行権限が必要な理由は?
ディレクトリのx権限は「そのディレクトリに移動(cd)できるかどうか」を制御します。r権限だけではファイル一覧は見えますが、中に入ることはできません。
Webサーバーのファイルは何に設定すべき?
一般的にファイルは644、ディレクトリは755が推奨されます。CGIやPHPスクリプトは実行権限が必要な場合は755に設定します。