chown
chown(シーエイチオウン、チェンジオーナー)は、Unix系システムでファイルの所有者(owner)を変更(change)するコマンド。多くの実装では、スーパーユーザーでないと実行できない。一般ユーザーは chgrp でグループを変更することができる。
使用法
[編集]chown コマンドの大まかな構文は以下の通り。
- chown [-hHLPR] [user][:group] target1 [target2 ..]
- オプションの user パラメータは、対象ファイル群の新たな所有ユーザーを指定する。
- オプションの group パラメータ(コロン : が必ず前置される)は、対象ファイル群を関連付ける新たなグループを指定する。
- target パラメータ(複数指定可)はユーザーやグループを変更したいファイルまたはディレクトリを指定する。
オプション
[編集]- -h
- システムがシンボリックリンクのユーザー識別子をサポートしている場合、指定された対象ファイルがシンボリックリンクなら、シンボリックリンク自身のユーザー識別子をセットしようとする。同様にシステムがシンボリックリンクのグループ識別子をサポートしている場合、指定された対象ファイルがシンボリックリンクなら、シンボリックリンク自身のグループ識別子をセットしようとする。システムがシンボリックリンクのユーザー識別子やグループ識別子をサポートしていない場合、指定されたファイルがシンボリックリンクなら、chown はそのファイルについては何も行わず、それ以降の対象ファイルの操作も行わない。ちなみに、このオプションが指定されていない場合は、シンボリックリンクが参照しているファイルを操作する。
- -H
- -R と共に指定されると、指定されたファイルがディレクトリを参照しているシンボリックリンクの場合、そのディレクトリと配下の全ファイルの所有者(およびグループ)を変更する。配下にディレクトリへのシンボリックリンクがあっても再帰しない。
- -L
- -R と共に指定されると、指定されたファイルがディレクトリを参照しているシンボリックリンクの場合、そのディレクトリと配下の全ファイルの所有者(およびグループ)を変更する。配下にディレクトリへのシンボリックリンクがあったら再帰する。
- -P
- -R と共に指定されると、コマンド行で指定されたファイルやディレクトリを走査していった先で遭遇したシンボリックリンクについて、シンボリックリンク自身の所有者(およびグループ)を変更する(システムがそのような機能をサポートしている場合)。シンボリックリンクを再帰的に追うことはしない。
- -R
- 再帰的にファイルの所有者とグループを変更する。コマンド行でディレクトリが指定されると、そのディレクトリとその配下の全ファイルを操作する。-H、-L、-P のどれも指定しない場合、どのオプションの動作をデフォルトとするかは規定されておらず、システムによって異なる。
注意点
[編集]- user または group のどちらかは必ず指定する必要がある。どちらも指定されないと chown コマンドは正しく動作しない。
- user および group はシンボル名でも識別子(すなわち、ユーザー識別子やグループ識別子)でもよい。
使用例
[編集]このコマンドは、スーパーユーザーとして実行する必要がある。一般ユーザーはsudoコマンドを用いて実行するべきであろう。
# chown root /var/run/httpd.pid
これは、 /var/run/httpd.pid の所有者を 'root' (スーパーユーザーの標準的なシンボル名)に変更している。
# chown nobody:nobody /tmp /var/tmp
/tmp と /var/tmp の所有者とグループを 'nobody' に変更している(よいことではない)。
# chown :512 /home
/home のグループ識別子を 512 に変更している(512 にグループ名が対応しているかどうかは関知しない)。
# chown -R us base
base の所有者を 'us' にし、それを再帰的(-R)に適用する。