Linuxコマンド chgrp(ファイル・ディレクトリの所有グループを変更)

指定したファイル・ディレクトリのグループの所有者を変更するコマンドについて解説。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

使用方法

chgrpコマンドを使用して、ファイルやディレクトリのグループ所有者を指定したグループ名、もしくはグループIDに変更できる。

書式

$ chgrp [オプション] ファイル名
-c,
–changes
変更が行われた場合は、指定したファイルの詳細情報を表示する
-R,
–recursive
指定したディレクトリ以下を再帰的にグループ所有権を変更する
–reference=ファイル名指定したファイルと同じグループを設定する
–dereference指定したファイルがシンボリックリンクである場合は、
リンク先ファイルの所有権を変更する
-h,
–no-dereference
シンボリックリンクが対象の場合、リンク先ファイルではなく
シンボリックリンクファイルにのみグループ所有権の変更を実施する
-f,
–silent,
–quiet
所有権変更ができない場合でもエラーメッセージを表示しない
オプション一覧表

かつて、ディレクトリ及びファイルの所有者であれば一般ユーザでもコマンドを実行することができましたが、現在は管理者のみが実行できるようになっている

グループ一覧
システムに登録されているグループは、/etc/groupファイルに記述されている。

サンプル

$ chown centos sample.txt 

実行結果

[root@xxx work]$ ls -l
total 4
lrwxrwxrwx 1 root root 18 Apr 21 21:57 link_sample -> sample/sample2.txt
drwxr-xr-x 3 root root 43 Apr 21 21:33 sample
-rw-r--r-- 1 root root  3 Apr 22 20:54 sample.txt
[root@xxx work]$ chgrp centos sample.txt  #所有グループをroot→centosへ変更
[root@xxx work]$ ls -l
total 4
lrwxrwxrwx 1 root root   18 Apr 21 21:57 link_sample -> sample/sample2.txt
drwxr-xr-x 3 root root   43 Apr 21 21:33 sample
-rw-r--r-- 1 root centos  3 Apr 22 20:54 sample.txt #グループがcentosに変更された。
[root@xxx work]$ 

ディレクトリのグループを変更する

chgrp コマンドにより、ディレクトリのグループを変更することができる。

サンプル

$ chgrp centos sample

実行結果

[root@xxx work]$ chgrp -R root sample
[root@xxx work]$ ls -l
total 2

drwxr-xr-x 3 root root   43 Apr 21 21:33 sample

[root@xxx work]$ chgrp centos sample #ディレクトリの所有グループを変更
[root@xxx work]$ ls -l
total 2
drwxr-xr-x 3 root centos 43 Apr 21 21:33 sample

ディレクトリ配下のグループをすべて変更する

chgrp コマンドにオプション-Rを指定することにより、ディレクトリ配下すべてのサブディレクトリとファイルのグループを変更することができる。

サンプル

sampleディレクトリを含めて、配下のサブディレクトリ及びファイルをの所有グループを一括で変更。

$ chgrp -R centos sample

実行結果

[root@xxx work]$ tree  #ディレクトリ構造
.
├── link_sample -> sample/sample2.txt
├── sample
│   ├── sample2.txt
│   └── sub_sample
└── sample.txt

2 directories, 3 files

[root@xxx work]$ ls -l                   #所有グループの確認
total 4
lrwxrwxrwx 1 root root   18 Apr 21 21:57 link_sample -> sample/sample2.txt
drwxr-xr-x 3 root root   43 Apr 21 21:33 sample
-rw-r--r-- 1 root centos  3 Apr 22 20:54 sample.txt

[root@xxx work]$ ls -l sample/          #sampleディレクトリ内の所有グループの確認
total 4
-rw-r--r-- 1 root root 3 Apr 21 21:33 sample2.txt
drwxr-xr-x 2 root root 6 Apr 21 21:33 sub_sample

[root@xxx work]$ chgrp -R centos sample  #ディレクトリ以下の所有グループをcentosに変更
[root@xxx work]$ ls -l                   #変更確認
 
total 4
lrwxrwxrwx 1 root root   18 Apr 21 21:57 link_sample -> sample/sample2.txt
drwxr-xr-x 3 root centos 43 Apr 21 21:33 sample
-rw-r--r-- 1 root centos  3 Apr 22 20:54 sample.txt
[root@xxx work]$ ls -l sample/          #変更確認
total 4
-rw-r--r-- 1 root centos 3 Apr 21 21:33 sample2.txt
drwxr-xr-x 2 root centos 6 Apr 21 21:33 sub_sample
[root@xxx work]$