chmod・chown
Linux では、ファイルやディレクトリごとに「誰が読めるか」「誰が書き込めるか」「誰が実行できるか」が管理されています。
chmod は権限の変更、chown は所有者の変更に使います。
権限表示の見方
ls -l を実行すると、ファイルの権限を確認できます。
ls -l script.sh
実行結果の例です。
-rw-r--r-- 1 user user 1200 Jun 4 10:00 script.sh
先頭の -rw-r--r-- が権限を表します。
- 先頭の
-: 通常ファイルを表す。ディレクトリの場合はd rw-: 所有者の権限r--: グループの権限r--: その他ユーザーの権限
権限の文字には、次の意味があります。
r: 読み取りw: 書き込みx: 実行
chmodで権限を変更する
chmod は、ファイルやディレクトリの権限を変更します。
実行権限を追加する例です。
chmod +x script.sh
所有者だけが読み書きできるようにする場合は、数値表記を使って次のように指定できます。
chmod 600 secret.txt
Web サーバーでよく見る 755 は、所有者が読み書き実行でき、グループとその他ユーザーは読み取りと実行ができる設定です。
chmod 755 public-script.sh
数値表記の考え方
数値表記では、読み取りが 4、書き込みが 2、実行が 1 です。
これらを組み合わせて各権限を表します。
| 数値 | 意味 | 内訳 |
|---|---|---|
7 | 読み書き実行 | 4 + 2 + 1 |
6 | 読み書き | 4 + 2 |
5 | 読み取りと実行 | 4 + 1 |
4 | 読み取りのみ | 4 |
0 | 権限なし | — |
3 桁の数値は左から順に、所有者・グループ・その他ユーザーの権限を表します。
chmod 644 file.txt
││└── その他: 読み取りのみ (4)
│└─── グループ: 読み取りのみ (4)
└──── 所有者: 読み書き (6)
chmod 644 file.txt は、所有者が読み書きでき、グループとその他ユーザーは読み取りのみという意味です。
chownで所有者を変更する
chown は、ファイルやディレクトリの所有者を変更します。
sudo chown appuser app.log
ユーザーとグループを同時に変更する場合は、ユーザー:グループ の形で指定します。
sudo chown appuser:appgroup app.log
ディレクトリ配下をまとめて変更する場合は、-R を使います。
sudo chown -R appuser:appgroup /var/www/example
-R は対象配下すべてに影響するため、実行前にパスが正しいか確認してください。
sudo と -R を組み合わせる場合、入力ミスや余分なスペースによって想定外の範囲に所有者変更が及ぶことがあります。
実行前に ls -ld 対象パス で対象を確認してから実行してください。
まとめ
chmod は権限を変更し、chown は所有者を変更します。
どちらも便利ですが、サービスの起動可否やセキュリティに直結するため、ls -l で現在の状態を確認してから変更しましょう。