chownコマンドはファイルの所有者やグループを変更することができます。
似たようなコマンドとして、chgrpコマンドがあります。chownコマンドでグループを変更することができますが、chgrpコマンドでもグループを変更できます。
目次
- 1 chownコマンドの構文
- 2 chownコマンドの利用例
- 2.1 所有者とグループの変更 (オプションなし)
- 2.2 再帰的に変更 (-Rオプション)
- 2.3 特定の所有者のときに変更 (--fromオプション)
- 2.4 処理内容の情報を表示 (-vオプション)
- 2.5 変更したときにメッセージを表示 (-cオプション)
- 2.6 エラーメッセージを表示しない (-fオプション)
- 2.7 シンボリックリンクファイル自体を変更 (-hオプション)
- 2.8 引数のディレクトリのシンボリックリンク先をたどる (-Hオプション)
- 2.9 ディレクトリのシンボリックリンク先をたどる (-Lオプション)
- 2.10 ディレクトリのシンボリックリンクをたどらない (-Pオプション)
- 2.11 参照のファイルと同じ所有者やグループに変更 (--referenceオプション)
- 3 chgrpコマンド
- 4 参考
chownコマンドの構文
chownコマンドの構文
1 |
chown [option]... new-owner file... |
new-ownerの指定方法
1 |
[owner] [ : [group] ] |
chownコマンドの利用例
所有者とグループの変更
(オプションなし)
chownコマンドはファイルの所有者とグループの変更を変更することができます。chownコマンドは所有者とグループの両方またはいずれかを変更できます。
所有者とグループの両方を変更
コマンド例
1 |
sudo chown root:root file.txt |
コマンド例実行前
1 2 3 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt |
実行結果
1 2 3 |
$ls -l 合計 0 -rw-rw-r-- 1 root root 0 11月 3 08:00 file.txt |
所有者の変更
コマンド例
1 |
sudo chown root file.txt |
コマンド例実行前
1 2 3 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt |
実行結果
1 2 3 |
$ls -l 合計 0 -rw-rw-r-- 1 root ubuntu 0 11月 3 08:00 file.txt |
グループの変更
グループを変更する場合は、管理者権限が必要かどうかはシステムに依存します。例えば、ファイルの所有者と現在のログインユーザが同じとき、ファイルの所有者が所属するグループに変更する場合、管理者権限が必要ではないかもしれません。
コマンド例
1 |
sudo chown :root file.txt |
コマンド例実行前
1 2 3 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt |
実行結果
1 2 3 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu root 0 11月 3 08:00 file.txt |
再帰的に変更
(-Rオプション)
-Rオプションはディレクトリとそのディレクトリの内容の所有者やグループを再帰的に変更します。
コマンド例
1 |
sudo chown -R root:root . |
コマンド例実行前
1 2 3 4 5 6 |
$ls -al 合計 8 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 08:47 . drwxr-xr-x 79 ubuntu ubuntu 4096 11月 3 08:00 .. -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:47 file2.txt |
実行結果
1 2 3 4 5 6 |
$ls -al 合計 8 drwxrwxr-x 2 root root 4096 11月 3 08:47 . drwxr-xr-x 79 ubuntu ubuntu 4096 11月 3 08:00 .. -rw-rw-r-- 1 root root 0 11月 3 08:00 file.txt -rw-rw-r-- 1 root root 0 11月 3 08:47 file2.txt |
特定の所有者のときに変更
(--fromオプション)
--fromオプションは、所有者を変更するときに特定の所有者のものだけを変更することができます。
コマンド例
1 |
sudo chown -R --from=owner root:root . |
コマンド例実行前
1 2 3 4 5 6 7 |
$ls -al 合計 8 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 08:50 . drwxr-xr-x 79 ubuntu ubuntu 4096 11月 3 08:00 .. -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt -rw-rw-r-- 1 root ubuntu 0 11月 3 08:47 file2.txt -rw-rw-r-- 1 owner ubuntu 0 11月 3 08:50 file3.txt |
実行結果
1 2 3 4 5 6 7 |
$ls -al 合計 8 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 08:50 . drwxr-xr-x 79 ubuntu ubuntu 4096 11月 3 08:00 .. -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt -rw-rw-r-- 1 root ubuntu 0 11月 3 08:47 file2.txt -rw-rw-r-- 1 root root 0 11月 3 08:50 file3.txt |
処理内容の情報を表示
(-vオプション)
-vオプションは、冗長モード(詳細な情報を表示するモード)で、所有者やグループを変更するかしないかの情報を表示します。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ls -al 合計 8 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 08:50 . drwxr-xr-x 79 ubuntu ubuntu 4096 11月 3 08:00 .. -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt -rw-rw-r-- 1 root ubuntu 0 11月 3 08:47 file2.txt -rw-rw-r-- 1 owner ubuntu 0 11月 3 08:50 file3.txt $ $sudo chown -v -R --from=owner root:root . './file2.txt' の所有者は root:ubuntu のまま保留されました './file.txt' の所有者は ubuntu:ubuntu のまま保留されました './file3.txt' の所有者を owner:ubuntu から root:root へ変更しました '.' の所有者は ubuntu:ubuntu のまま保留されました $ $ls -al 合計 8 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 08:50 . drwxr-xr-x 79 ubuntu ubuntu 4096 11月 3 08:00 .. -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt -rw-rw-r-- 1 root ubuntu 0 11月 3 08:47 file2.txt -rw-rw-r-- 1 root root 0 11月 3 08:50 file3.txt |
変更したときにメッセージを表示
(-cオプション)
-cオプションは所有者やグループが変更されたときに、どの所有者やグループに変更されたかのメッセージを表示します。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt $ $sudo chown -c root:root file.txt 'file.txt' の所有者を ubuntu:ubuntu から root:root へ変更しました $ls -l 合計 0 -rw-rw-r-- 1 root root 0 11月 3 08:00 file.txt |
エラーメッセージを表示しない
(-fオプション)
-fオプションは、変更できないときのエラーメッセージを表示しません。
コマンド例と実行結果
1 2 3 4 5 |
$chown root file.txt chown: 'file.txt' の所有者を変更中: Operation not permitted $ $chown -f root file.txt $ |
シンボリックリンクファイル自体を変更
(-hオプション)
-hオプションはシンボリックリンクファイル自体の所有者やグループを変更します。
コマンド例
1 |
sudo chown -h root:root file_sym.txt |
コマンド例実行前
1 2 3 4 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt lrwxrwxrwx 1 ubuntu ubuntu 8 11月 3 09:09 file_sym.txt -> file.txt |
実行結果
1 2 3 4 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt lrwxrwxrwx 1 root root 8 11月 3 09:09 file_sym.txt -> file.txt |
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 08:00 file.txt lrwxrwxrwx 1 ubuntu ubuntu 8 11月 3 09:09 file_sym.txt -> file.txt $ $sudo chown root:root file_sym.txt $ls -l 合計 0 -rw-rw-r-- 1 root root 0 11月 3 08:00 file.txt lrwxrwxrwx 1 ubuntu ubuntu 8 11月 3 09:09 file_sym.txt -> file.txt |
引数のディレクトリのシンボリックリンク先をたどる
(-Hオプション)
-Rオプションで再帰的に所有者やグループを変更する場合、-Hオプションは引数にあるディレクトリのシンボリックリンクファイルだけをたどります。
コマンド例
1 |
sudo chown -R -H -h root:root dir1_sym |
コマンド例実行前
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ls -lR .: 合計 12 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:28 dir1 lrwxrwxrwx 1 ubuntu ubuntu 4 11月 3 09:32 dir1_sym -> dir1 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:30 dir2 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:31 dir3 ./dir1: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:28 dir1_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:28 dir2_sym -> ../dir2 ./dir2: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:30 dir2_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:30 dir3_sym -> ../dir3 ./dir3: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:31 dir3_file.txt |
実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ls -lR .: 合計 12 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:28 dir1 lrwxrwxrwx 1 root root 4 11月 3 09:32 dir1_sym -> dir1 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:30 dir2 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:31 dir3 ./dir1: 合計 0 -rw-rw-r-- 1 root root 0 11月 3 09:28 dir1_file.txt lrwxrwxrwx 1 root root 7 11月 3 09:28 dir2_sym -> ../dir2 ./dir2: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:30 dir2_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:30 dir3_sym -> ../dir3 ./dir3: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:31 dir3_file.txt |
ディレクトリのシンボリックリンク先をたどる
(-Lオプション)
-Rオプションで再帰的に所有者やグループを変更する場合、-Lオプションは全てのディレクトリのシンボリックリンクファイルをたどります。
コマンド例
1 |
sudo chown -R -L -h root:root dir1_sym |
コマンド例実行前
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ls -lR .: 合計 12 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:28 dir1 lrwxrwxrwx 1 ubuntu ubuntu 4 11月 3 09:32 dir1_sym -> dir1 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:30 dir2 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:31 dir3 ./dir1: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:28 dir1_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:28 dir2_sym -> ../dir2 ./dir2: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:30 dir2_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:30 dir3_sym -> ../dir3 ./dir3: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:31 dir3_file.txt |
実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ls -lR .: 合計 12 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:28 dir1 lrwxrwxrwx 1 root root 4 11月 3 09:32 dir1_sym -> dir1 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:30 dir2 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:31 dir3 ./dir1: 合計 0 -rw-rw-r-- 1 root root 0 11月 3 09:28 dir1_file.txt lrwxrwxrwx 1 root root 7 11月 3 09:28 dir2_sym -> ../dir2 ./dir2: 合計 0 -rw-rw-r-- 1 root root 0 11月 3 09:30 dir2_file.txt lrwxrwxrwx 1 root root 7 11月 3 09:30 dir3_sym -> ../dir3 ./dir3: 合計 0 -rw-rw-r-- 1 root root 0 11月 3 09:31 dir3_file.txt |
ディレクトリのシンボリックリンクをたどらない
(-Pオプション)
-Rオプションで再帰的に所有者やグループを変更する場合、-Pオプションはディレクトリのシンボリックリンクファイルをたどりません。
コマンド例
1 |
sudo chown -R -P -h root:root dir1_sym |
コマンド例実行前
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ls -lR .: 合計 12 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:28 dir1 lrwxrwxrwx 1 ubuntu ubuntu 4 11月 3 09:32 dir1_sym -> dir1 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:30 dir2 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:31 dir3 ./dir1: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:28 dir1_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:28 dir2_sym -> ../dir2 ./dir2: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:30 dir2_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:30 dir3_sym -> ../dir3 ./dir3: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:31 dir3_file.txt |
実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ls -lR .: 合計 12 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:28 dir1 lrwxrwxrwx 1 root root 4 11月 3 09:32 dir1_sym -> dir1 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:30 dir2 drwxrwxr-x 2 ubuntu ubuntu 4096 11月 3 09:31 dir3 ./dir1: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:28 dir1_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:28 dir2_sym -> ../dir2 ./dir2: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:30 dir2_file.txt lrwxrwxrwx 1 ubuntu ubuntu 7 11月 3 09:30 dir3_sym -> ../dir3 ./dir3: 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:31 dir3_file.txt |
参照のファイルと同じ所有者やグループに変更
(--referenceオプション)
--referenceオプションは、ファイルを指定して、そのファイルと同じ所有者やグループに変更します。
コマンド例
1 |
sudo chown --reference=ref_file.txt file.txt |
コマンド例実行前
1 2 3 4 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:47 file.txt -rw-rw-r-- 1 root root 0 11月 3 09:47 ref_file.txt |
実行結果
1 2 3 4 |
$ls -l 合計 0 -rw-rw-r-- 1 root root 0 11月 3 09:47 file.txt -rw-rw-r-- 1 root root 0 11月 3 09:47 ref_file.txt |
chgrpコマンド
chgrpコマンドは、グループを変更するコマンドになります。構文はchownコマンドとほぼ同じですが、所有者の変更をできません。使用できるオプションもchownコマンドとほぼ同じになります。
コマンド例
1 |
sudo chgrp root file.txt |
コマンド例実行前
1 2 3 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu ubuntu 0 11月 3 09:47 file.txt |
実行結果
1 2 3 |
$ls -l 合計 0 -rw-rw-r-- 1 ubuntu root 0 11月 3 09:47 file.txt |