kazmax - Linux で自宅サーバー

ファイル・ディレクトリの所有者とグループを変更する - chown

ファイル・ディレクトリの所有者とグループを変更するには、「chown」コマンドを使います。このページでは、「chown」コマンドの使用方法を説明します。

Last Update : 2013年07月23日

ファイル・ディレクトリの所有者とグループを変更する - chown 項目

  1. chown 書式
  2. 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のプライマリグループになる。
Linux 基礎知識 関連記事