はじめに
こんにちは!今回はchownコマンドについて解説します。
chownはファイルやディレクトリの所有者(owner)とグループを変更するコマンドです。“change owner"の略ですね。
ファイルの所有者が違うために編集できなかったり、特定のグループに属さないとアクセスできないファイルがあったりしますが、そんな時にchownが活躍します。サーバー運用やシステム管理では必ず出てくるコマンドですよ。
chownコマンドとは
chownは、ファイルやディレクトリの所有者およびグループを変更する外部コマンドです。
Linuxではすべてのファイルに所有者とグループが設定されており、アクセス権限や操作権限がこれに基づいて制御されます。ファイルをコピーしたり、別のユーザーから受け取ったりすると、所有者が異なることがあります。そういった時にchownで所有者を変更するわけですね。
chmod(権限変更)と一緒に覚えておくと、ファイルアクセスの全体像が見えてきます。
基本構文
|
|
所有者の指定方法:
- 所有者のみ変更:
chown newowner file.txt - 所有者とグループ:
chown newowner:newgroup file.txt - グループのみ変更:
chown :newgroup file.txt
主なオプション
| オプション | 説明 |
|---|---|
-R |
ディレクトリと中身を再帰的に変更 |
-v |
詳細表示(変更内容を表示) |
-c |
変更があった場合のみ表示 |
-f |
エラーを無視(force) |
--reference=FILE |
別のファイルの所有者・グループを参考にして設定 |
ユーザーIDとグループID
Linuxでは内部的にユーザーとグループが数値IDで管理されています:
|
|
通常はユーザー名・グループ名で指定するほうが分かりやすいです。
使用例
例1: ファイルの所有者を変更する
|
|
実行結果:
|
|
file.txtの所有者をaliceに変更します。実行するにはroot権限またはファイルの現在の所有者である必要があります。
例2: 所有者とグループを同時に変更する
|
|
実行結果:
|
|
file.txtの所有者をaliceに、グループをdevelopersに変更します。コロン(:)で所有者とグループを区切ります。
例3: グループのみを変更する
|
|
実行結果:
|
|
report.txtのグループをstaffに変更します。所有者は変わりません。
例4: ディレクトリ配下のすべてのファイルを変更
|
|
実行結果:
|
|
myprojectディレクトリ配下のすべてのファイル・ディレクトリの所有者とグループを一括変更します。-R(再帰)オプションでサブディレクトリも処理されます。
例5: 詳細表示付きで確認しながら変更
|
|
実行結果:
|
|
-vオプションで変更内容を表示します。複数ファイルを変更する時に、どのファイルが変わったか確認できます。
例6: 変更があった場合のみ表示
|
|
実行結果:
|
|
-cオプションで実際に変更があったファイルのみ表示します。-vは全ファイルを表示するので、変更があったものだけ知りたい時に便利です。
例7: 別ファイルの所有者を参考にして設定
|
|
実行結果:
|
|
template.txtと同じ所有者・グループをnewfile.txtに適用します。テンプレートファイルに合わせて設定したい時に便利です。
例8: Webサーバー用ファイルのオーナー設定
|
|
実行結果:
|
|
Webサーバー(www-dataユーザー)がアクセス可能なように、ディレクトリ配下をすべてwww-dataで統一します。実務ではよく使う設定ですね。
例9: ユーザーID(UID)で指定する
|
|
実行結果:
|
|
ユーザー名ではなく数値IDで所有者を指定します。スクリプト内や、ユーザーが存在しないシステムでも使えます。
例10: エラーを無視して変更を続ける
|
|
実行結果:
|
|
-f(force)オプションでエラーを無視して処理を続行します。権限がないファイルがあっても止まらずに続けられます。
Tips・注意点
chownはroot権限が必要
|
|
chownはrootユーザーか、ファイルの現在の所有者のみ実行可能です。通常はsudoで実行します。
所有者を変更するとセキュリティに影響
|
|
所有者を変更すると、そのユーザーがファイルを削除・編集できるようになります。セキュリティに関わるので注意が必要です。
chownとchmodの使い分け
|
|
chownは「誰が所有しているか」を変え、chmodは「何ができるか」を変えます。両者は独立していますが、実務では組み合わせて使うことが多いです。
グループの確認方法
|
|
存在しないグループを指定するとエラーになるので、事前に確認しておきましょう。
実践的な使い方
Gitリポジトリのオーナー変更
|
|
新しいメンバーがプロジェクトに加わった時、ディレクトリの所有者をそのユーザーに変更します。チーム開発での権限管理に便利です。
バックアップファイルのオーナー設定
|
|
バックアップは専用のユーザーやグループで管理することでセキュリティを高めます。
新しいシステムユーザーで運用するファイル
|
|
アプリケーションを実行するユーザーを専用に作成し、そのユーザーにファイルを所有させることで、セキュリティを高められます。
Webサーバーのテンプレートとプロジェクトを同じ設定に
|
|
--referenceで既存設定を参考にすることで、手動設定ミスを防げます。
まとめ
chownコマンドのポイント:
- 所有者を変更:
chown newowner file.txt - 所有者とグループ:
chown newowner:newgroup file.txt - グループのみ:
chown :newgroup file.txt - -R:ディレクトリを再帰的に変更
- root権限が必須:通常は
sudoで実行 - -v:変更内容を表示(確認用)
- よく使う組み合わせ:
sudo chown -R alice:developers,sudo chown www-data:www-data
ファイルアクセス制御の要となるコマンドです。chmodと組み合わせることで、Linuxのセキュリティ設定がしっかり理解できるようになりますよ!