こんにちは、たねやつです。
このシリーズでは、Linuxの基本的なコマンドを一つずつ取り上げ、その使い方を具体的な例とともに解説していきます。今回は、ファイルやディレクトリの所有者・グループを変更するchownコマンドです。
chownコマンドとは?
chownコマンドは、CHange OWNerの略で、ファイルやディレクトリの所有ユーザーおよび所有グループを変更するために使用します。chmodが「誰が何をできるか」を設定するのに対し、chownは「そもそも誰の持ち物か」を設定します。システム管理や、複数ユーザーでファイルを共有するのに非常に重要なコマンドです。このコマンドの実行には、多くの場合スーパーユーザー権限(sudo)が必要です。
所有者の指定方法
chownの基本的な書式は chown [新しい所有者]:[新しいグループ] [対象ファイル] です。
| 指定方法 | 説明 |
|---|---|
user |
所有ユーザーのみを変更します。 |
user:group |
所有ユーザーと所有グループの両方を変更します。 |
:group |
所有グループのみを変更します(chgrpコマンドと似た動作)。 |
user: |
所有ユーザーを変更し、所有グループをそのユーザーのログイングループに変更します。 |
主なオプション
| オプション | 説明 |
|---|---|
-R |
--recursiveの略。ディレクトリとその配下のすべてのファイル・ディレクトリに対して、再帰的に所有者を変更します。 |
-v |
--verboseの略。変更した各ファイルの所有者情報を表示します。 |
-c |
--changesの略。実際に変更が行われたファイルの情報のみを表示します。 |
--from=[現在の所有者:グループ] |
指定した現在の所有者・グループに一致するファイルのみ、所有者を変更します。 |
具体的な使用例
状況1: ファイルの所有者を別のユーザーに変更したい
ユーザーpiが作成したファイルdata.txtの所有者を、ユーザーwww-dataに変更したい場面です。Webサーバーがファイルを読み書きできるようにする際によく発生します。
# ls -lで現状確認 # -rw-r--r-- 1 pi pi 1024 Jul 10 13:00 data.txt # sudoを使って所有者をwww-dataに変更 sudo chown www-data data.txt # ls -lで確認 # -rw-r--r-- 1 www-data pi 1024 Jul 10 13:00 data.txt
ファイルの所有者がwww-dataに変更されました。グループはpiのままです。
状況2: ファイルの所有者とグループを同時に変更したい
上記data.txtの所有グループもwww-dataに変更したい場面です。
# 所有者とグループを同時に変更 sudo chown www-data:www-data data.txt # ls -lで確認 # -rw-r--r-- 1 www-data www-data 1024 Jul 10 13:00 data.txt
コロン(:)で区切ることで、ユーザーとグループの両方を一度に変更できます。
状況3: ディレクトリ配下の所有者をまとめて変更したい
Webアプリケーションのプロジェクトディレクトリ/var/www/my_app配下のすべてのファイルとディレクトリの所有者を、再帰的にapp_user:app_groupに変更したい場面です。
# -Rオプションで再帰的に変更 sudo chown -R app_user:app_group /var/www/my_app
-Rオプションを使うことで、ディレクトリ内のすべてのアイテムの所有権を一括で設定できます。アプリケーションのデプロイ時などに頻繁に使用します。
最後に
今回はchownコマンドについて解説しました。ファイルのパーミッション(chmod)と所有権(chown)は、Linuxのアクセス制御における車の両輪です。特に複数ユーザーが関わる環境や、Webサーバーのようなシステムアカウントがファイルを操作する場面では、適切な所有者を設定することがセキュリティの観点から非常に重要になります。