[UNIXコマンド]chownコマンドの基本を理解する

先生

ファイルやディレクトリの所有者・所有グループが変更できる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コマンドの基本的な使用方法について紹介しました。

ユーザーやグループの確認については別の記事で紹介しようと思います。