連載
» 2016年07月01日 05時00分 UPDATE

Linux基本コマンドTips(15):【 chown 】コマンド/【 chgrp 】コマンド――ファイルの所有者と所有グループを変更する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「chown」コマンドと「chgrp」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルの所有者を変更する「chown」コマンドと、ファイルの所有グループを変更する「chgrp」コマンドです。

chownコマンド/chgrpコマンドとは?

 ファイルには「所有者」と「所有グループ」があります。これは、主にパーミッション(許可属性)で使われます([参考]“応用力”をつけるためのLinux再入門 第9回:「ls -l」コマンドの表示からファイルの属性を理解しよう)。

 chownコマンドはファイルの所有者と所有グループを、chgrpコマンドはファイルの所有グループを変更する際に使います。


chmodコマンド/chgrpコマンドの書式

chown [オプション] 新しい所有者 ファイル1 ファイル2 ファイル3……

chgrp [オプション] 新しい所有グループ ファイル1 ファイル2 ファイル3……

※[ ]は省略可能な引数を示しています



chownコマンド/chgrpコマンドの主なオプション

 chownコマンドおよびchgrpコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-R --recursive ファイルとディレクトリを再帰的に変更する
--preserve-root 「/」に対する再帰的な操作は行わない
--no-preserve-root 「/」を特別扱いしない(デフォルト)
--reference=参照ファイル 参照ファイルと同じパーミッションにする
-h --no-dereference シンボリックリンクそれ自身を変更する
--dereference シンボリックリンクそれ自身ではなく、指している先を変更する
--from=現在のユーザー:現在のグループ 現在のユーザーとグループに一致していた場合だけ変更する(chownコマンドのみ)
-v --verbose 処理した内容を出力する
-c --changes 変更が行われた場合のみ処理内容を出力する
-f --silent, --quiet ほとんどのエラーメッセージを出力しない


ファイルの所有者とグループを変更する(chownコマンド)

 chownコマンドでは「chown ユーザー名 対象ファイル」でファイルの所有者を、「chown ユーザー名.グループ名 対象ファイル」でファイルの所有者と所有グループを変更することができます(画面1)。新しい所有者(ユーザー名)を省略することで、所有グループ(グループ名)だけを変更することも可能です(chgrpコマンドに相当)。

コマンド実行例

chown penguin test.txt

(「test.txt」の所有者を「penguin」というユーザーに変更する(所有グループは変更しない))

chown penguin.users test.txt

(「test.txt」の所有者を「penguin」に、所有グループを「users」に変更する)

chown .users test.txt

(「test.txt」の所有グループを「users」に変更する(所有者は変更しない))

※上記コマンドは管理者権限で実行する必要があります


画面1 画面1 「chown」コマンドで所有者と所有グループを変更した結果

 以下は画面1で表示されているコマンドの詳細説明になります。

# ls -l test.txt 
-rw-rw-r--. 1 study study 17017  5月 14 01:11 test.txt
「ls -l」コマンドで「test.txt」の所有者は「study」、所有グループは「study」であることを確認
# chown penguin.users test.txt
# ls -l test.txt
-rw-rw-r--. 1 penguin users 17017  5月 14 01:11 test.txt
chownコマンドで「test.txt」の所有者を「penguin」に、所有グループを「users」に変更
# chown study test.txt
# ls -l test.txt 
-rw-rw-r--. 1 study users 17017  5月 14 01:11 test.txt
さらにchownコマンドで「test.txt」の所有者を「study」に変更した(所有グループは「users」のまま)

 なお、変更前と変更後の所有者に対する権限が必要なので、所有者を変更できるのは「root」ユーザーのみです。所有グループは“変更前と変更後の両方に属しているユーザー”であれば変更できます。



ファイルの所有グループを変更する(chgrpコマンド)

 chgrpコマンドでは「chgrp グループ名 対象ファイル」で、ファイルの所有グループ(グループ名)を変更することができます(画面2)。所有グループは“変更前と変更後の両方に属しているユーザー”であれば変更できます。「root」ユーザーであればどのファイル、どのグループに対する変更も可能です。

コマンド実行例

chgrp users test.txt

(「test.txt」の所有グループを「users」に変更する)

※上記コマンドは管理者権限で実行する必要があります

※「test.txt」のもともとの所有グループに所属しており、かつ、「users」グループに所属しているユーザーであれば一般ユーザーでも変更できます


画面2 画面2 「chgrp」コマンドで所有グループを変更した結果

 以下は画面2で表示されているコマンドの詳細説明になります。

# ls -l test.txt 
-rw-rw-r--. 1 study study 17017  5月 14 01:11 test.txt
「ls -l」コマンドで「test.txt」の所有者は「study」、所有グループは「study」であることを確認
# chgrp users test.txt 
# ls -l test.txt 
-rw-rw-r--. 1 study users 17017  5月 14 01:11 test.txt
「test.txt」の所有グループを「users」に変更(「chown .users test.txt」を実行した場合と同じ動作になる)

筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。