
新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コマンドは、アクセス権管理やチーム共有を円滑にする重要なツールです。
グループを適切に設定しておくことで、ファイル共有のトラブルを防ぎ、安全で整理された環境を保つことができます。
システム管理者だけでなく、一般ユーザーでも扱える便利なコマンドなので、ぜひ実際に試してみてください。
