Linux chgrp コマンド
Linux chgrp(英語の正式名: change group)コマンドは、ファイルまたはディレクトリの所属グループを変更するために使用します。
とchown他のコマンドとは異なり、chgrp は一般ユーザーがファイルの所属グループを変更することを許可します。ただし、そのユーザーがそのグループのメンバーである場合に限ります。
UNIX システムファミリーでは、ファイルまたはディレクトリの権限は、所有者と所属グループによって管理されます。chgrp コマンドを使用すると、ファイルとディレクトリの所属グループを変更できます。設定方法は、グループ名またはグループ ID のどちらでも構いません。
構文
chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
パラメータの説明
chgrp コマンドのパラメータは、操作フラグ、出力制御、再帰処理、参照ファイルのいくつかのカテゴリに分類できます。
| パラメータ | 説明 |
|---|---|
| -c または --changes | 効果は "-v" パラメータに似ていますが、変更された部分のみを報告します。具体的にどのファイルが変更されたかを確認する必要がある場合に適しています。 |
| -f または --quiet または --silent | エラーメッセージを表示しません。スクリプトを静かに実行する必要がある場合に使用し、大量のエラー出力が結果を妨げるのを防ぎます。 |
| -h または --no-dereference | シンボリックリンクのファイルのみを変更し、他の関連ファイルは変更しません。シンボリックリンク自体の所属グループを変更する場合に使用する必要があります。 |
| -R または --recursive | 再帰的に処理し、指定したディレクトリ内のすべてのファイルとサブディレクトリをまとめて処理します。ディレクトリ内のすべてのファイルを一括変更する場合に使用します。 |
| -v または --verbose | コマンドの実行プロセスを表示します。デバッグや各ファイルの変更状態を確認するために使用します。 |
| --help | ヘルプ情報を表示し、利用可能なすべてのパラメータを一覧表示します。 |
| --reference=<参照ファイルまたはディレクトリ> | 指定したファイルまたはディレクトリの所属グループを、参照ファイルまたはディレクトリの所属グループと同じに設定します。権限を一括コピーするシナリオで使用します。 |
| --version | バージョン情報を表示します。 |
例
以下は、chgrp コマンドの一般的な例で、さまざまなシナリオでの使用方法を示しています。
単一のファイルの所属グループを変更:
# 将 file.txt 的所属组设置为 developers chgrp developers file.txt
複数のファイルの所属グループを変更:
# 一次性修改多个文件的所属群组 chgrp users file1.txt file2.txt file3.txt
ディレクトリとその内容の所属グループを再帰的に変更:
# -R 参数会遍历整个目录树 chgrp -R www-data /var/www/html
参照ファイルのグループを使用:
# 将 target_file.txt 的组设置为与 source_file.txt 相同 chgrp --reference=source_file.txt target_file.txt
詳細な操作情報を表示:
# -v 参数会报告每个文件的修改状态 chgrp -v staff document.pdf
実際の応用シーン
chgrp コマンドには実際の作業でさまざまな使用シーンがあります。以下は一般的な使用例です。
Webサーバーのファイル管理
Webサーバーは特定のユーザーまたはグループとして実行する必要があります。ファイルの所属グループを適切に設定すると、アクセス権限を制御できます。
例
# www-data は Debian 系ディストリビューションにおける Web サーバーのデフォルトグループです
chgrp -R www-data /var/www/html/
プロジェクト共同作業
チーム開発では、プロジェクトディレクトリに適切なグループ権限を設定し、チームメンバーがファイルにアクセスして変更できるようにする必要があります。
例
chgrp -R developers /home/projects/webapp/
同時にグループユーザーに書き込み権限を付とします
chmod -R g+w /home/projects/webapp/
ログファイル管理
システムログには特定のグループ権限が必要です。これにより、ログプログラムは書き込み可能で、一般ユーザーは読み取りのみ可能になります。
例
# ログファイルのグループを syslog に設定し、ログデーモンの書き込みを許可します
chgrp syslog /var/log/application.log
バックアップファイルの整理
バックアップファイルは通常、専用のグループで管理し、バックアップ管理者のみが操作できるようにする必要があります。
例
# バックアップディレクトリ全体のグループを再帰的に設定します
chgrp -R backup /backup/daily/
注意事項
一般ユーザーは、ファイルの所属グループを自分が所属するグループにのみ変更できます。
-R パラメータを使用する際は注意が必要です。対象ディレクトリが変更したい範囲であることを確認してください。
システムディレクトリの所属グループを変更するときは、管理者権限(sudo の使用)が必要な場合があります。
シンボリックリンク自体もファイルです。-h パラメータを使用すると、シンボリックリンクの所属グループを変更できますが、リンク先のターゲットファイルは変更されません。
その他の拡張ヒント: ファイルの現在の所属グループが不明な場合は、ls -l コマンドで確認できます。3列目が所属ユーザー、4列目が所属グループを表します。
Linux コマンド大全