Linuxのファイルオーナー・権限変更メモ
ファイルの所有者や権限を変更する機会が多いため、chown
と chmod
をメモします。
1. 所有者と権限の確認
ls -l
出力例:
drwxr-xr-x 2 appuser devgroup 4096 Aug 14 14:29 data_backup
- 所有者(user):
appuser
- グループ(group):
devgroup
- 権限(permission):
drwxr-xr-x
2. 所有者変更(chown)
ファイルやディレクトリの所有者・グループを変更する。
chown [オプション] [新しい所有者][:グループ] 対象
基本例
chown root data_backup # 所有者をrootに変更
chown root:devgroup data_backup # 所有者とグループを同時に変更
chown -R root:devgroup data_backup # 再帰的に変更(配下すべて)
主なオプション
オプション | 説明 |
---|---|
-R |
再帰的に変更(配下をすべて対象にする) |
-v |
処理内容を表示(verbose) |
-c |
変更があった項目だけ表示 |
--from=: |
所有者・グループが一致するものだけ変更(限定変更) |
-h |
シンボリックリンク自体の所有者を変更(リンク先には影響しない) |
オプションなし | デフォルトでは、リンクをたどってリンク先の所有者を変更する |
-h
とオプションなしの違い
lrwxrwxrwx 1 appuser devgroup 12 Aug 14 15:00 loglink -> /var/log/app
-
chown root loglink
→ リンク先/var/log/app
の所有者が変わる -
chown -h root loglink
→ シンボリックリンクそのものの所有者が変わる
リンクを含む処理では誤操作を防ぐため、どちらの挙動を期待しているか明示するといいかも。
3. 権限変更(chmod)
アクセス権限を変更する。
chmod [オプション] [モード] 対象
数値モード指定
権限 | 数値 | 意味 |
---|---|---|
755 | rwx r-x r-x | 所有者は書き込み可、他は読み取りと実行のみ |
775 | rwx rwx r-x | グループも書き込み可 |
700 | rwx — — | 所有者のみアクセス可 |
644 | rw- r– r– | ファイルでよく使う設定(所有者のみ書き込み可) |
600 | rw- — — | 所有者のみ読み書き可(秘密鍵など) |
例:
chmod 755 data_backup
chmod 644 config.yaml
記号モード指定
chmod g+w data_backup # グループに書き込み権限を追加
chmod o-r data_backup # その他ユーザーの読み取りを削除
chmod u+x script.sh # 所有者に実行権を追加
chmod a-rwx secret.txt # 全員の全権限を削除
よく使うオプション
オプション | 説明 |
---|---|
-R |
再帰的に変更 |
-v |
変更内容を表示 |
-c |
変更があったものだけ表示 |
--reference= |
参照ファイルと同じ権限に設定 |
注意: Linuxの chmod
はシンボリックリンク自体のパーミッションを変更できません。シンボリックリンクを指定した場合、リンク先ファイルのパーミッションが変更されます。
4. よく使う確認コマンド
whoami # 現在のユーザー
groups # 所属グループ一覧
id # UIDとGIDを確認
stat file # 詳細なファイル情報(権限・UID・GIDなど)
5. 実務上の注意点
chown -R /
のような実行はシステム破壊につながるため、対象ディレクトリを必ず確認してから実行する。- サービスユーザーやシステムアカウント(例:
nginx
,ec2-user
など)の所有者を変更すると、サービスが起動できなくなる場合がある。 - 共有ディレクトリでは、
umask
とsetgid
ビットを設定しておくと、新規ファイルの権限が揃う。 - 監査や運用中に混乱しないよう、
chown
・chmod
の実行履歴はできればログに残す(例:script
コマンドやhistory -a
)。 - シンボリックリンクに対する操作は、意図しない場所のファイルを変更するリスクがあるため、
-h
オプションの使用を検討する。
6. シンボリックリンクの扱いについて
所有者変更(chown)
シンボリックリンクの所有者は chown -h
で変更可能。
chown -h newuser:newgroup linkfile # リンク自体の所有者を変更
chown newuser:newgroup linkfile # リンク先の所有者を変更
権限変更(chmod)
Linuxでは、シンボリックリンク自体のパーミッションは意味を持たず(常に lrwxrwxrwx
)、変更もできません。
chmod
は常にリンク先のファイルのパーミッションを変更します。
chmod 644 linkfile # リンク先のファイルの権限が変更される
7. 参考
man chown
man chmod
補足:よくある操作例
操作内容 | コマンド | 挙動 |
---|---|---|
通常のファイルの所有者変更 | chown root file.txt |
ファイルの所有者をrootに変更 |
シンボリックリンク先の所有者変更 | chown root linkfile |
リンク先の所有者を変更 |
シンボリックリンク自体の所有者変更 | chown -h root linkfile |
リンク自体の所有者を変更 |
ディレクトリ配下すべての所有者変更 | chown -R root:devgroup dir/ |
dir配下すべての所有者・グループを変更 |
参照ファイルと同じ権限に設定 | chmod --reference=template.txt target.txt |
template.txtと同じ権限に設定 |
グループに書き込み権限を追加 | chmod g+w file.txt |
グループのwrite権限を付与 |
所有者のみ読み書き可(秘密鍵の設定など) | chmod 600 private.key |
所有者以外アクセス不可 |