Linux chgrp コマンド

Linux 命令大全Linux コマンド大全


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サーバーは特定のユーザーまたはグループとして実行する必要があります。ファイルの所属グループを適切に設定すると、アクセス権限を制御できます。

例

# ウェブサイトのファイルグループを 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 命令大全Linux コマンド大全

その他の拡張