このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】ファイルやディレクトリのグループの変更:chgrpコマンド
chgrpコマンドの概要
「chgrp
」コマンドは、ファイルやディレクトリのグループを変更するために使用されます。ファイルシステムのアクセス制御を管理するために重要であり、適切なグループ設定により特定のユーザーグループがファイルにアクセスできるように設定することができます。
【構文】chgrp グループ ファイルパス
主なオプションと説明
オプション | 説明 |
---|---|
-R | 再帰的にディレクトリとその中の全ファイルを変更 |
コマンドの使用例と解説
1.演習の準備
この演習で使用するファイルの作成を作成します。
・「date > example.txt
」コマンドを実行し、「ls -l example.txt
」コマンドで、このファイルの所有者とグループを確認します。
user01@ubuntu-vm:~$ date > example.txt
user01@ubuntu-vm:~$ ls -l example.txt
-rw-rw-r-- 1 user01 user01 43 6月 15 01:25 example.txt
-rw-rw-r-- 1 user01 user01 43 6月 15 01:25 example.txt
所有者とグループが、ログインしてファイルを作成した「user01」となっています。
・ディレクトリと作成したディレクトリ内に2つファイルを作成します。
以下のコマンドを実行します。
- 「
mkdir project
」コマンド - 「
date > project/example1.txt
」コマンド - 「
date > project/example2.txt
」コマンド
user01@ubuntu-vm:~$ mkdir project
user01@ubuntu-vm:~$ date > project/example1.txt
user01@ubuntu-vm:~$ date > project/example2.txt
作成したディレクトリ「project」とファイル「example1.txt」、「example2.txt」の所有者とグループを確認します。
次のコマンドを実行します。
- 「ls -ld project」コマンド
- 「ls -l project/example*」コマンド
user01@ubuntu-vm:~$ ls -ld project
drwxrwxr-x 2 user01 user01 4096 6月 15 01:34 project
user01@ubuntu-vm:~$ ls -l project/example*
-rw-rw-r-- 1 user01 user01 43 6月 15 01:34 project/example1.txt
-rw-rw-r-- 1 user01 user01 43 6月 15 01:34 project/example2.txt
所有者とグループが、ログインした「user01」になっていることが確認できます。
このLinux上に作成されているグループを確認します。
・「cat /etc/group
」コマンドを実行します。
「backup」、「operator」、「staff」、「users」などのグループが作成されています。※Ubuntu環境
user01@ubuntu-vm:~$ cat /etc/group
(省略)
backup:x:34:
operator:x:37:tanaka
(省略)
staff:x:50:yamada
(省略)
users:x:100:
(省略)
2.グループの変更
・「sudo chgrp staff example.txt
」コマンドを実行し、「ls -l example.txt
」コマンドで、グループが変更されていることを確認します。
このコマンドは、ファイル 「example.txt
」のグループを「staff
」に変更します。所有者は変更されません。
# ファイル 'example.txt' のグループを 'staff' に変更し、変更後に確認
user01@ubuntu-vm:~$ sudo chgrp staff example.txt
[sudo] user01 のパスワード:
user01@ubuntu-vm:~$ ls -l example.txt
-rw-rw-r-- 1 user01 staff 43 6月 15 01:25 example.txt
3.再帰的なグループの変更
・「sudo chgrp -R operator project
」コマンドを実行します。
このコマンドは、ディレクトリ「project
」とその中に含まれるすべてのファイルおよびサブディレクトリのグループを 「operator
」に変更します。「-R
」オプションを使用することで、指定したディレクトリとそのすべての内容を再帰的に変更します。
# ディレクトリ 'project' とその中の全ファイル・ディレクトリのグループを 'operator' に変更
user01@ubuntu-vm:~$ sudo chgrp -R operator project
次のコマンドを実行して、「chgrp」コマンドが適用されていることを確認します。
- 「
ls -ld project
」コマンド - 「
ls -l project/example*
」コマンド
user01@ubuntu-vm:~$ ls -ld project
drwxrwxr-x 2 user01 operator 4096 6月 15 01:34 project
user01@ubuntu-vm:~$ ls -l project/example*
-rw-rw-r-- 1 user01 operator 43 6月 15 01:34 project/example1.txt
-rw-rw-r-- 1 user01 operator 43 6月 15 01:34 project/example2.txt
グループが「operator
」になっていることが確認できます。
4.ファイルとディレクトリの削除
この演習で作成したファイルとディレクトリを削除します。
・「sudo rm -r example.txt project
」コマンドを実行し、「ls
」コマンドで削除されたかを確認します。
user01@ubuntu-vm:~$ sudo rm -r example.txt project
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
まとめ
「chgrp
」コマンドは、ファイルやディレクトリのグループを適切に管理するために重要です。特に、「-R
」オプションを使用することで、ディレクトリ全体に対して一括して変更を適用することができます。これにより、アクセス制御を容易に管理し、システムのセキュリティを維持することができます。
chownコマンドとchgrpコマンドの使い分け
「chgrp
」コマンドと同様に「chown
」コマンドでもグループを変更することができます。ここでは、それらのコマンドの違いや使い方をまとめます。
chown
コマンド は所有者およびグループを変更するために使用されます。特に所有者の変更が必要な場合に使用します。chgrp
コマンド はグループのみを変更するために使用されます。所有者の変更が不要で、グループのみを変更する場合に使用します。-R
オプション を使用することで、ディレクトリとその中の全ファイル・ディレクトリに対して再帰的に変更を適用することができます。
chownコマンドとchgrpコマンド
コマンド | 説明 |
---|---|
chown | ファイルやディレクトリの所有者(オーナー)およびグループを変更するコマンド |
chgrp | ファイルやディレクトリのグループを変更するコマンド |
主なオプションと説明
コマンド | オプション | 説明 |
---|---|---|
chown | -R | 再帰的にディレクトリを変更する |
chgrp | -R | 再帰的にディレクトリを変更する |
使用例と使い分け
タスク | 使用するコマンド | 例 |
---|---|---|
所有者を変更する | chown | chown alice example.txt |
グループのみを変更する(所有者変更不要) | chgrp | chgrp developers example.txt |
所有者とグループを同時に変更する | chown | chown alice:developers example.txt |
ディレクトリ内のすべての所有者を変更する | chown (再帰的) | chown -R alice:developers project/ |
ディレクトリ内のすべてのグループを変更する | chgrp (再帰的) | chgrp -R developers project/ |
ファイルの所有者を変更してからグループを確認する | chown | chown bob file.txt && ls -l file.txt |
ファイルのグループを変更してから所有者を確認する | chgrp | chgrp users file.txt && ls -l file.txt |