Linuxコマンド chown(ファイル・ディレクトリの所有者を変更)
指定したファイル・ディレクトリのオーナやグループの所有者を変更するコマンドについて解説。
RHEL Fedora CentOS Vine Deblan Ubuntu Plamo
参考サイト:Man page of INSTALL
使用方法
chownコマンドを使用して、ファイルやディレクトリのユーザー所有者及びグループ所有者を変更できます。
書式
$ chown [オプション] ファイル名
-c, –changes | 変更が行われた場合は、指定したファイルの詳細情報を表示する |
-R, –recursive | 指定したディレクトリ以下を再帰的に所有権を変更する |
–reference=ファイル名 | 指定したファイルのユーザーやグループ設定を利用する |
–dereference | 指定したファイルがシンボリックリンクである場合は、 リンク先ファイルの所有権を変更する |
-h, –no-dereference | シンボリックリンクが対象の場合、リンク先ファイルではなく シンボリックリンクファイルにのみ所有権の変更を実施する |
-f, –silent, –quiet | 所有権変更ができない場合でもエラーメッセージを表示しない |
–from=ユーザー名:グループ名 | ユーザー名やグループ名にマッチするファイルのみ所有権を変更する (どちらかを省略することが可能) |
指定方法 | 解説 |
---|---|
ユーザ名 | 対象ファイルの所有ユーザを変更する |
ユーザ名: | ユーザとユーザのログイングループを設定する |
:グループ名 | 対象ファイルの所有グループを変更する。chgrpと同じ動作 |
ユーザ名:グループ名 | ユーザとグループを設定する。 |
かつて、ファイルの所有者であれば一般ユーザでもコマンドを実行することができましたが、現在は管理者のみが実行できるようになっている。
システムユーザ一覧
システムユーザは、/etc/passwdファイルに記述されている。
サンプル
ファイルのオーナ所有者を別のユーザに変更するサンプル
$ chown centos sample.txt
実行結果
[root@xxx work]$ ls -l
total 4
drwxr-xr-x 2 root root 6 Apr 21 21:21 sample
-rw-r--r-- 1 root root 4 Apr 21 21:22 sample.txt #オーナがroot
[root@xxx work]$ chown centos sample.txt #オーナをユーザを変更
[root@xxx work]$ ls -l
total 4
drwxr-xr-x 2 root root 6 Apr 21 21:21 sample
-rw-r--r-- 1 centos root 4 Apr 21 21:22 sample.txt #オーナがcentosユーザに変更されている。
[root@xxx work]$
オーナとグループを同時に変更する
chown コマンド後に:(コロン)で区切って指定することにより、オーナとグループを同時に変更することができる。
サンプル
$ chown centos:centos sample.txt
実行結果
[root@xxx work]$ ls -la
total 8
drwxr-xr-x 3 root root 38 Apr 21 21:22 .
drwxrwxrwt. 12 root root 4096 Apr 21 21:21 ..
drwxr-xr-x 2 root root 6 Apr 21 21:21 sample
-rw-r--r-- 1 root root 4 Apr 21 21:22 sample.txt #オーナ及びグループの所有者がroot
[root@xxx work]$ chown centos:centos sample.txt #コロンで区切って指定する
[root@xxx work]$ ls -la
total 8
drwxr-xr-x 3 root root 38 Apr 21 21:22 .
drwxrwxrwt. 12 root root 4096 Apr 21 21:21 ..
drwxr-xr-x 2 root root 6 Apr 21 21:21 sample
-rw-r--r-- 1 centos centos 4 Apr 21 21:22 sample.txt #オーナ及びグループの所有者がcentosに変更される。
[root@xxx work]$
グループのユーザを変更する
chown コマンド後に:グループ名を指定することにより、オーナとグループを同時に変更することができる。
サンプル
$ chown :centos sample.txt
実行結果
[root@xxx work]$ ls -la
total 8
drwxr-xr-x 3 root root 38 Apr 21 21:22 .
drwxrwxrwt. 12 root root 4096 Apr 21 21:21 ..
drwxr-xr-x 2 root root 6 Apr 21 21:21 sample
-rw-r--r-- 1 root root 4 Apr 21 21:22 sample.txt #オーナ及びグループの所有者がroot
[root@xxxx work]$ chown :centos sample.txt #:(コロン)グループ名で区切って指定する
[root@xxx work]$ ls -la
total 8
drwxr-xr-x 3 root root 38 Apr 21 21:22 .
drwxrwxrwt. 12 root root 4096 Apr 21 21:21 ..
drwxr-xr-x 2 root root 6 Apr 21 21:21 sample
-rw-r--r-- 1 root centos 4 Apr 21 21:22 sample.txt #グループがcentosに変更される。
[root@xxx work]$
ディレクトリ配下のオーナ及びグループをすべて変更する
chown コマンドにオプション-Rを指定することにより、ディレクトリ配下すべてのサブディレクトリとファイルのオーナやグループを変更することができる。
サンプル
$ chown -R centos:centos sample
実行結果
[root@xxx work]$ tree #ディレクトリ構成
.
├── sample
│ ├── sample2.txt
│ └── sub_sample
└── sample.txt
2 directories, 2 files
[root@xxx work]$ ls -l sample/ #sampleディレクトリ内の状態
total 4
-rw-r--r-- 1 root root 3 Apr 21 21:33 sample2.txt
drwxr-xr-x 2 root root 6 Apr 21 21:33 sub_sample
[root@xxx work]$ chown -R centos:centos sample/ #sampleディレクトリ含めて、オーナとグループをcentosに一括変更
[root@xxx work]$ ls -l
total 4
drwxr-xr-x 3 centos centos 43 Apr 21 21:33 sample
-rw-r--r-- 1 root centos 4 Apr 21 21:22 sample.txt
[root@xxx work]$ ls -l sample/
total 4
-rw-r--r-- 1 centos centos 3 Apr 21 21:33 sample2.txt
drwxr-xr-x 2 centos centos 6 Apr 21 21:33 sub_sample
[root@xxx work]$
リンクファイルの所有者を変更する
chown コマンドにオプション-hを指定することにより、リンクファイル自体のオーナを変更することができる。オプションなしでオーナを変更した場合、リンク先のファイルの所有者が変更される。
サンプル
$ chown -h centos link_sample
実行結果
[root@xxx work]$ ls -l
total 0
lrwxrwxrwx 1 root root 18 Apr 21 21:57 link_sample -> sample/sample2.txt #リンクのオーナ及びグループはroot
drwxr-xr-x 3 root root 43 Apr 21 21:33 sample
[root@xxx work]$ ls -l sample/
total 4
-rw-r--r-- 1 root root 3 Apr 21 21:33 sample2.txt
drwxr-xr-x 2 root root 6 Apr 21 21:33 sub_sample
[root@xxx work]$ chown centos link_sample #リンクのオーナを変更
[root@xxx work]$ ls -l
total 0
lrwxrwxrwx 1 root root 18 Apr 21 21:57 link_sample -> sample/sample2.txt #シンボリックリンクのオーナ変わらない
drwxr-xr-x 3 root root 43 Apr 21 21:33 sample
[root@xxx work]$ ls -l sample/
total 4
-rw-r--r-- 1 centos root 3 Apr 21 21:33 sample2.txt #シンボリックリンク先のファイルのオーナが変更される。
drwxr-xr-x 2 root root 6 Apr 21 21:33 sub_sample
[root@xxx work]$
[root@xxx work]$ ls -l #シンボリックリンクのオーナを確認
total 0
lrwxrwxrwx 1 root root 18 Apr 21 21:57 link_sample -> sample/sample2.txt
drwxr-xr-x 3 root root 43 Apr 21 21:33 sample
[root@xxx work]$ ls -l sample/ #リンク先ファイルのオーナを確認
total 4
-rw-r--r-- 1 root root 3 Apr 21 21:33 sample2.txt
drwxr-xr-x 2 root root 6 Apr 21 21:33 sub_sample
[root@xxx work]$ ls -l sample/
total 4
-rw-r--r-- 1 root root 3 Apr 21 21:33 sample2.txt
drwxr-xr-x 2 root root 6 Apr 21 21:33 sub_sample
[root@xxx work]$ chown -h centos link_sample #リンクのオーナを変更
[root@xxx work]$ ls -l sample/
total 4
-rw-r--r-- 1 root root 3 Apr 21 21:33 sample2.txt
drwxr-xr-x 2 root root 6 Apr 21 21:33 sub_sample
[root@xxx work]$ ls -l
total 0
lrwxrwxrwx 1 centos root 18 Apr 21 21:57 link_sample -> sample/sample2.txt
drwxr-xr-x 3 root root 43 Apr 21 21:33 sample
[root@xxx work]$