新Linux入門|chgrpコマンドによるグループ変更とアクセス制御

 Linuxでは、ファイルやディレクトリのアクセス権限を「所有者(User)」「グループ(Group)」「その他(Others)」という3つの単位で管理しています。
 その中で、「グループ(Group)」を適切に設定・変更することで、複数のユーザーで安全かつ効率的にファイルを共有することができます。

そんなときに活躍するのが、chgrp(Change Group)コマンドです。
この記事では、AlmaLinux 9.6 を使って、chgrpコマンドの使い方をわかりやすく解説します。

📘 chgrpコマンドとは?

 chgrp(Change Group)コマンドは、ファイルやディレクトリの所有グループ(Group)を変更するためのコマンドです。
 例えば、部署ごとやプロジェクトごとに作成されたグループへファイルを割り当てることで、チームメンバー間のファイル共有を安全に行うことができます。

💡 ポイント

  • 一般ユーザーでも使用可能ですが、自分が所属しているグループしか指定できません。
  • 所有グループの変更にはアクセス制御の理解が不可欠です。

⚙️ chgrpコマンドの基本構文

chgrp [オプション] グループ名 ファイル名またはディレクトリ名
項目説明
グループ名新しく設定するグループ名を指定します。
ファイル名 / ディレクトリ名所有グループを変更したいファイルまたはディレクトリを指定します。
オプション処理の動作を制御するための追加パラメータです。

💡 例

[root@AlmaLinux ~]# chgrp sales report.txt

→ ファイル report.txt のグループを sales に変更します。

🧠 所有グループとは?

 Linuxでは、各ファイルやディレクトリに「所有者(User)」と「所有グループ(Group)」が設定されています。
 グループは複数のユーザーをまとめるための単位であり、特定のチームや部署に属するユーザー全員が、同じ権限でファイルを扱えるようにすることができます。

区分説明
所有者(User)ファイルを作成したユーザーsuzuki
所有グループ(Group)所属しているグループsales
その他(Others)上記以外のユーザーsystem usersなど

確認コマンド例

[suzuki@AlmaLinux ~]$ ls -l report.txt
-rw-r--r-- 1 suzuki sales 2048 Oct 29 09:30 report.txt

この出力では、所有者が suzuki、所有グループが sales であることが確認できます。

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

オプション説明
-c変更が行われた場合にメッセージを表示する。
-fエラーメッセージを表示せずに処理を続行する。
-hシンボリックリンク自体の所有グループを変更する。
-R指定ディレクトリ以下を再帰的に変更する。
-v変更内容を詳細に表示する。

💡 補足説明

  • -R オプションは、プロジェクトディレクトリ全体のアクセス権を一括変更したいときに便利です。
  • -v はスクリプト実行時などに確認出力を見たい場合に使われます。

🧰 chgrpコマンドの使用例と解説

① 所有グループを変更する

ファイル file1 の所有グループを sales に変更します。

[root@AlmaLinux ~]# chgrp sales file1

出力例

[root@AlmaLinux ~]# ls -l file1
-rw-r--r-- 1 suzuki sales 1024 Oct 29 10:00 file1

→ グループが sales に変更されました。

② シンボリックリンクの所有グループを変更する

シンボリックリンク symlink1 の所有グループを sales に変更します。

[root@AlmaLinux ~]# chgrp -h sales symlink1

💡 通常の chgrp ではリンク先のファイルのグループを変更しますが、
-h オプションを使うとリンク自体のグループが変更されます。

③ ディレクトリを再帰的に変更する

project ディレクトリ以下すべてのファイル・サブディレクトリのグループを sales に変更します。

[root@AlmaLinux ~]# chgrp -R sales project

→ project 配下の全ファイル・ディレクトリが一括で sales グループに変更されます。

④ 変更があった場合にメッセージを表示する

変更結果を確認したい場合は、-c オプションを使用します。

[root@AlmaLinux ~]# chgrp -c sales report.txt
所有グループ ‘root’ から ‘sales’ に変更しました

⑤ エラーメッセージを表示しない

存在しないファイルなどがあってもエラーを出したくないときは -f オプションを使用します。

[root@AlmaLinux ~]# chgrp -f sales missing.txt

→ ファイルが存在しなくてもエラーメッセージは表示されません。

⑥ 変更内容を詳細に表示する

変更状況を確認するために -v オプションを使います。

[root@AlmaLinux ~]# chgrp -v sales data.txt
所有グループ ‘root’ から ‘sales’ に変更しました

📊 chgrpコマンドのオプションまとめ

オプション意味使用例
-c変更時のみ結果を表示chgrp -c sales file1
-fエラーを表示しないchgrp -f sales file2
-hシンボリックリンク自体を変更chgrp -h sales link1
-R再帰的に変更chgrp -R sales /data
-v詳細な実行結果を表示chgrp -v sales report.txt

✅ まとめ

操作内容コマンド例効果
ファイルのグループを変更chgrp sales file1グループを sales に変更
ディレクトリ以下を再帰的に変更chgrp -R sales /project/project 以下すべてを変更
シンボリックリンク自体を変更chgrp -h sales link1リンクそのものを変更
実行状況を確認chgrp -v sales data.txt変更結果を詳細に表示

chgrpコマンドは、アクセス権管理やチーム共有を円滑にする重要なツールです。
 グループを適切に設定しておくことで、ファイル共有のトラブルを防ぎ、安全で整理された環境を保つことができます。

システム管理者だけでなく、一般ユーザーでも扱える便利なコマンドなので、ぜひ実際に試してみてください。