開発ツール

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の数字表記では、各権限に数値を割り当てて合算します:

権限記号数値
読み取りr4
書き込みw2
実行x1

例:rwx = 4 + 2 + 1 = 7r-x = 4 + 0 + 1 = 5r-- = 4 + 0 + 0 = 4

よく使うパーミッション設定

数値記号用途
755rwxr-xr-x実行可能スクリプト・ディレクトリ
644rw-r--r--一般ファイル(HTML、CSS、画像)
600rw-------秘密鍵・設定ファイル(SSHキーなど)
700rwx------プライベートディレクトリ
777rwxrwxrwx全権限(セキュリティリスク・非推奨)
400r--------読み取り専用ファイル

記号表記による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に設定します。

chmodパーミッション計算ツールを使ってみる

数値と記号を直感的に操作してパーミッションを計算。chmodコマンドも自動生成。

ツールを開く →