ファイル・ディレクトリの所有者とグループを変更する - chown
ファイル・ディレクトリの所有者とグループを変更するには、「chown」コマンドを使います。このページでは、「chown」コマンドの使用方法を説明します。
Last Update : 2013年07月23日
ファイル・ディレクトリの所有者とグループを変更する - chown 項目
1. chown 書式
書式
chown [オプション]... OWNER[:[GROUP]] FILE...
主なオプション
オプション | 意味 |
-R, --recursive | ファイルやディレクトリの所有権を再帰的に変更する。FILEに指定したディレクトリ配下すべてのファイル・フォルダにコマンドを実行します。 |
-c, --changes | 実際に変更があった場合の動作を詳細に表示する。 |
chown コマンドは、FILEに指定したファイルやディレクトリの所有者、グループを変更する事ができます。
OWNER部分には、ユーザ名か、ユーザーID(数値)を指定します。
「:(コロン)」で区切ってGROUPも同時に指定することができます。
2. chown 使用例
所有者をuser1から、user2に変更する
$ ls -l
合計 4
-rw-r--r-- 1 user1 group1 0 7月 22 08:50 test.txt
$ chown user2 test.txt
$ ls -l
合計 4
-rw-r--r-- 1 user2 group1 0 7月 22 08:50 test.txt ← 所有者がuser2に変わった
所有者をuser2に、グループをgroup2に変更する
$ chown -c user2:group2 test.txt `test.txt' の所有者を user2:group2 に変更しました ← 「-c」オプションで変更内容が表示される。 $ ls -l 合計 4 -rw-r--r-- 1 user2 group2 0 7月 22 08:50 test.txt ← 所有者がuser2、グループがgroup2に変わった
memo
OWNERとGROUPの区切り文字の「:(コロン)」と「.(ドット)」について
OWNERとGROUPの区切り文字は、「:(コロン)」と書きましたが、「.(ドット)」でも可能です。むしろ、昔は「.(ドット)」の方が標準的でした。
ユーザー名や、グループ名に「.(ドット)」を含む事が出来る様になったため、そうしたユーザー、グループへの変更時に「chown」はおかしな挙動をとるようになりました。「:(コロン)」を使えば正常に変更できるので、なるべく「:(コロン)」を使ったほうが良いです。
memo
chown コマンドで、OWNERを省略し、「:(コロン)」から書くと、グループだけ変更する事ができます。
ls -l 合計 4 -rw-r--r-- 1 user1 group1 0 7月 22 08:50 test.txt $ chown :group2 test.txt ← OWNER部分を省略する $ ls -l 合計 4 -rw-r--r-- 1 user1 group2 0 7月 22 08:50 test.txt ← グループだけ変更される
memo
chown user1: test.txt
の様に、ユーザー名に続いてコロンもしくはドットがあるのにグループ名が無い場合、ファイルのグループはそのユーザのプライマリグループに変更されます。ユーザーは指定したものになります。
$ ls -l 合計 4 -rw-r--r-- 1 user1 group1 0 7月 22 08:50 test.txt $ id user2 uid=503(user2) gid=505(group2) 所属グループ=505(group2) ↑ 「user2」のプライマリグループは「group2」 $ chown user2: test.txt ←「:(コロン)」の後ろを省略 $ ls -l 合計 4 -rw-r--r-- 1 user2 group2 0 7月 22 08:50 test.txt ↑ファイルのグループがuser2のプライマリグループになる。