このページで解説している内容は、以下の 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コマンドとchgrpコマンド

主なオプションと説明

コマンドオプション説明
chown-R再帰的にディレクトリを変更する
chgrp-R再帰的にディレクトリを変更する
主なオプションと説明

使用例と使い分け

タスク使用するコマンド
所有者を変更するchownchown alice example.txt
グループのみを変更する(所有者変更不要)chgrpchgrp developers example.txt
所有者とグループを同時に変更するchownchown alice:developers example.txt
ディレクトリ内のすべての所有者を変更するchown (再帰的)chown -R alice:developers project/
ディレクトリ内のすべてのグループを変更するchgrp (再帰的)chgrp -R developers project/
ファイルの所有者を変更してからグループを確認するchownchown bob file.txt && ls -l file.txt
ファイルのグループを変更してから所有者を確認するchgrpchgrp users file.txt && ls -l file.txt
使用例と使い分け