
ファイルやディレクトリの所有者・所有グループが変更できるchownコマンドについて紹介します。
目次
「chown」コマンドとは
chownコマンドは、LinuxやmacOSなどのUnix系OSでファイルやディレクトリの所有者・所有グループを変更するためのコマンドです。
chownコマンドの使い方まとめ
先にまとめます。
# -- 基本的な使い方 --
# ファイルやディレクトリの所有者・所有グループを変更する
chown <所有者>:<所有グループ> <ファイルパスorディレクトリパス>
# ファイルやディレクトリの所有者を変更
chown <所有者> <ファイルパスorディレクトリパス>
# ファイルやディレクトリの所有グループを変更
chown :<所有グループ> <ファイルパスorディレクトリパス>
# 所有者・所有グループを確認する
ls -l <ファイルパスorディレクトリパスor無し>
# -- オプション --
# サブディレクトリ配下を再帰的に変更
chown -R <所有者>:<所有グループ> <ディレクトリパス>
# 変更内容を表示
chown -v <所有者>:<所有グループ> <ファイルパスorディレクトリパス>
# 変更があったファイルのみ変更内容を表示
chown -c <所有者>:<所有グループ> <ファイルパスorディレクトリパス>
chownコマンドの基本的な使い方
chownコマンドでは、ファイル・ディレクトリの所有者・所有グループの変更ができます。
# ファイルやディレクトリの所有者・所有グループを変更する
chown <所有者>:<所有グループ> <ファイルパスorディレクトリパス>
# ファイルやディレクトリの所有者を変更
chown <所有者> <ファイルパスorディレクトリパス>
# ファイルやディレクトリの所有グループを変更
chown :<所有グループ> <ファイルパスorディレクトリパス>
所有者と所有グループはコロン(:)で区切ります。所有者のみの変更であれば特に何もつけず、所有グループのみの変更であれば先頭にコロン(:)をつけます。
実行例
root@localhost:~$ chown user1:group1 file1.txt
root@localhost:~$
所有者・所有グループの確認方法
所有者・所有グループの設定はlsコマンドの-lオプションで見ることができます。
# 所有者・所有グループを確認する
ls -l <ファイルパスorディレクトリパスor無し>
実行例
root@localhost:~$ ls -l file1.txt
-rwxr-xr-x 1 user1 group1 3072000 Mar 29 13:15 file1.txt
root@localhost:~$
「user1 group1」の部分が所有者・所有グループを示すところです。
左(use1)が所有者、右(group1)が所有グループを示します。
chownコマンドのオプション
いくつか便利なオプションがあります。
オプション | 詳細 |
-R | サブディレクトリ配下を再帰的に変更する |
-v | 詳細を表示する |
-c | 変更があったもののみ詳細を表示する |
以降で各オプションの使い方について紹介します。
-R:再帰的に変更
サブディレクトリがある場合、その配下のファイルやディレクトリに対して再帰的に所有者・所有グループを変更します。
# サブディレクトリ配下を再帰的に変更
chown -R <所有者>:<所有グループ> <ディレクトリパス>
実行例
root@localhost:~$ ls -lR ---> 変更前の確認
.:
total 3004
drwxr-xr-x 3 root root 4096 Apr 1 16:49 dir1
-rwxr-xr-x 1 user1 group1 3072000 Mar 29 13:15 file1.txt
./dir1:
total 3004
drwxr-xr-x 2 root root 4096 Apr 1 16:50 dir2
-rwxr-xr-x 1 root root 3072000 Mar 29 13:15 file2.txt
./dir1/dir2:
total 3000
-rwxr-xr-x 1 root root 3072000 Mar 29 13:15 file3.txt
root@localhost:~$
root@localhost:~$ chown -R user1:group1 ./dir1
root@localhost:~$
root@localhost:~$ ls -lR ---> 変更後の確認
.:
total 3004
drwxr-xr-x 3 user1 group1 4096 Apr 1 16:49 dir1
-rwxr-xr-x 1 user1 group1 3072000 Mar 29 13:15 file1.txt
./dir1:
total 3004
drwxr-xr-x 2 user1 group1 4096 Apr 1 16:50 dir2
-rwxr-xr-x 1 user1 group1 3072000 Mar 29 13:15 file2.txt
./dir1/dir2:
total 3000
-rwxr-xr-x 1 user1 group1 3072000 Mar 29 13:15 file3.txt
root@localhost:~$
-v:詳細情報を表示
コマンド実行時に変更した情報を表示させることができます。
操作ログを残したい時などには使っていきましょう。
# 変更内容を表示
chown -v <所有者>:<所有グループ> <ファイルパスorディレクトリパス>
使用例
root@localhost:~$ chown -v user1:group1 file1.txt
changed ownership of 'file1.txt' from root:root to user1:group1
root@localhost:~$
-c:詳細情報を表示
所有者・所有グループが変更された対象の詳細情報を表示します。
-vオプションと同様に、操作ログを残したい時などには使っていきましょう。
# 変更があったファイルのみ変更内容を表示
chown -c <所有者>:<所有グループ> <ファイルパスorディレクトリパス>
使用例
root@localhost:~$ chown -cR user1:group1 ./dir1/
changed ownership of './dir1/dir2/file3.txt' from root:root to user1:group1
changed ownership of './dir1/dir2' from root:root to user1:group1
changed ownership of './dir1/file2.txt' from root:root to user1:group1
root@localhost:~$
まとめ
以上です。今回はchownコマンドの基本的な使用方法について紹介しました。
ユーザーやグループの確認については別の記事で紹介しようと思います。