以前の記事では、groupaddコマンドとgroupdelコマンドを学びました。このチュートリアルでは、groupmodコマンドについて学習します。
Linuxのgroupmodコマンドは、名前またはグループID(GID)を変更することにより、指定されたグループを変更します。
コマンドの構文は次のとおりです。
groupmod [options] GROUP
グループの変更は管理タスクであるため、sudoユーザーになるか、rootアカウントを使用してこのコマンドを実行する必要があります。
ここでは、groupmodコマンドの例でsudoを使用します。
groupmodコマンドでグループ名を変更する
グループの名前を変更する場合は、次の方法で変更できます。
sudo groupmod -n new_groupname old_groupname
ここでの良い点は、グループ名を変更しても、グループが所有するファイルには影響しないことです。
実際の例で見てみましょう。
これが、ユーザーabhishekとグループtest_groupに属するファイルです。
[email protected]:~$ ls -l ab.txt
-rw-r--r-- 1 abhishek test_group 0 Feb 24 16:39 ab.txt
ここで、グループ名をtest_groupからtestgroupに変更すると(名前からアンダースコアを削除)
[email protected]:~$ sudo groupmod -n testgroup test_group
新しいグループ名を反映するために、ファイルのグループ所有権を「変更」します。
[email protected]:~$ ls -l ab.txt
-rw-r--r-- 1 abhishek testgroup 0 Feb 24 16:39 ab.txt
実際には、グループ名を変更してもグループIDは変わりません。グループIDを変更する方法を見てみましょう。
groupmodコマンドでグループIDを変更する
グループのGIDは、次の方法で変更できます。
sudo groupmod -g GID groupname
現在、これは危険な変更であり、回避する必要があります。まず、システムグループと通常のグループを区別するためのGID_MIN、GID_MAX、SYS_GID_MIN、SYS_GID_MAX値などのログイン定義に関するチェックは実行されません。
次に重要なのは、グループが所有するファイルが、存在しないグループによってグループの所有権のままになることです。
以下の例で、グループテストのグループIDを1020に変更しましたが、このグループが所有するファイルには古いGIDが引き続き反映されています。
[email protected]:~$ ls -l a.txt
-rw-r--r-- 1 abhishek testing 57 Feb 24 15:57 a.txt
[email protected]:~$ sudo groupmod -g 1020 testing
[email protected]:~$ ls -l a.txt
-rw-r--r-- 1 abhishek 1008 57 Feb 24 15:57 a.txt
ご参考までに、GIDは/ etc/groupファイルで確認できます。 idコマンドを使用して、GID、UID、その他の詳細を表示することもできます。
Linuxでのグループ管理のためのgroupmodコマンドについて理解を深めていただければ幸いです。ご質問やご提案は大歓迎です。