Linuxのファイルオーナー・権限変更メモ

Linuxのファイルオーナー・権限変更メモ

ファイルの所有者や権限を変更する機会が多いため、chownchmod をメモします。


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 など)の所有者を変更すると、サービスが起動できなくなる場合がある。
  • 共有ディレクトリでは、umasksetgid ビットを設定しておくと、新規ファイルの権限が揃う。
  • 監査や運用中に混乱しないよう、chownchmod の実行履歴はできればログに残す(例: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 所有者以外アクセス不可

Last modified: 2025-10-13

Author