【 chown 】コマンド/【 chgrp 】コマンド――ファイルの所有者と所有グループを変更する:Linux基本コマンドTips(15)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「chown」コマンドと「chgrp」コマンドです。
本連載では、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で表示されているコマンドの詳細説明になります。
# ls -l test.txt -rw-rw-r--. 1 study study 17017 5月 14 01:11 test.txt
# chown penguin.users test.txt # ls -l test.txt -rw-rw-r--. 1 penguin users 17017 5月 14 01:11 test.txt
# chown study test.txt # ls -l test.txt -rw-rw-r--. 1 study users 17017 5月 14 01:11 test.txt
なお、変更前と変更後の所有者に対する権限が必要なので、所有者を変更できるのは「root」ユーザーのみです。所有グループは“変更前と変更後の両方に属しているユーザー”であれば変更できます。
ファイルの所有グループを変更する(chgrpコマンド)
chgrpコマンドでは「chgrp グループ名 対象ファイル」で、ファイルの所有グループ(グループ名)を変更することができます(画面2)。所有グループは“変更前と変更後の両方に属しているユーザー”であれば変更できます。「root」ユーザーであればどのファイル、どのグループに対する変更も可能です。
コマンド実行例
chgrp users test.txt
(「test.txt」の所有グループを「users」に変更する)
※上記コマンドは管理者権限で実行する必要があります
※「test.txt」のもともとの所有グループに所属しており、かつ、「users」グループに所属しているユーザーであれば一般ユーザーでも変更できます
以下は画面2で表示されているコマンドの詳細説明になります。
# ls -l test.txt -rw-rw-r--. 1 study study 17017 5月 14 01:11 test.txt
# chgrp users test.txt # ls -l test.txt -rw-rw-r--. 1 study users 17017 5月 14 01:11 test.txt
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.