Linuxにおけるユーザーとグループの管理は、システムの保守と権限管理において最も重要なタスクの一つです。ユーザーを新しいグループに追加すると、ファイルへのアクセスや特定のコマンドの実行など、特定の権限を付与できます。これにより、各ユーザーがシステム内で実行できる操作を正確に制御できるため、システム管理者だけでなく上級ユーザーにとっても不可欠なツールとなっています。

まとめ
- ユーザーをグループに追加するには、「sudo usermod -a -G example_group example_user」コマンドを使用します。
- ユーザーを一度に複数のグループに追加するには、「sudo usermod -a -G group1,group2,group3 example_user」のように、グループをカンマで区切ります。
- ユーザーのプライマリ グループを設定するには、コマンド「sudo usermod -g example_group example_user」を使用します。
ユーザーの関連グループを変更するのは比較的簡単な作業ですが、特にユーザーをセカンダリグループに追加する場合など、これらのコマンドを知らない人もいます。ここでは、あらゆるシナリオについて順を追って説明します。
Linuxシステムでは、ユーザーアカウントを1つ以上のグループに割り当てることができます。ファイル権限やその他の権限はグループごとに設定できます。例えばUbuntuでは、sudoグループに属するユーザーのみがsudoコマンドを使用して昇格権限を取得できます。
GNOMEやKDE Plasmaなどのデスクトップ環境をお使いの場合は、これらの設定を調整するためのグラフィカルインターフェースが利用できる場合があります(少なくともディストリビューションによって異なります)。実際には、コマンドプロンプトを開いていくつかのコマンドを入力する方が簡単です。今日はそちらをご紹介します。
新しいグループを追加する
システムに新しいグループを作成するには、以下のgroupaddコマンドを使用します。new_groupは作成するグループ名に置き換えてください。また、このコマンドではsudoを使用する必要があります(sudoを使用しないLinuxディストリビューションの場合は、suコマンドを別途実行して上位の権限を取得してから実行する必要があります)。
sudo グループ追加 新しいグループ

既存のユーザーアカウントをグループに追加する
既存のユーザー アカウントをシステム上のグループに追加するには、usermod コマンドを使用し、examplegroup をユーザーを追加するグループの名前に置き換え、exampleusername を追加したいユーザーの名前に置き換えます。
usermod -a -G examplegroup exampleusername
たとえば、geek ユーザーを sudo グループに追加するには、次のコマンドを使用します。
sudo usermod -a -G sudo geek

ユーザーのプライマリグループを変更する
ユーザーアカウントは複数のグループに所属できますが、これらのグループのうち 1 つが常に「プライマリグループ」となり、他のグループは「セカンダリグループ」となります。ユーザーのログインプロセスと、ユーザーが作成するファイルやフォルダは、プライマリグループに割り当てられます。
ユーザーに割り当てられたプライマリ グループを変更するには、usermod コマンドを実行し、examplegroup をプライマリ グループにするグループの名前に置き換え、exampleusername をユーザー アカウントの名前に置き換えます。
usermod -g examplegroup exampleusername
ここで -g に注意してください。小文字の g を使用すると、プライマリグループが指定されます。上記のように大文字の -g を使用すると、新しいセカンダリグループが指定されます。この例では、「geek」に「example_primary」という新しいプライマリグループを割り当てます。
sudo usermod -g example_primary geek

現在のユーザーアカウントが割り当てられているグループを表示するには、groupsコマンドを実行します。グループのリストが表示されます。
グループヘッド
各グループに関連付けられた番号 ID を表示するには、代わりに id コマンドを実行します。
id
別のユーザー アカウントが割り当てられているグループを表示するには、groups コマンドを実行し、ユーザー アカウント名を指定します。
グループ例ユーザー名
id コマンドを実行してユーザー名を指定すると、各グループに関連付けられている番号 ID を表示することもできます。
ID 例 ユーザー名

グループリストの最初のグループ、またはIDリストの「gid=」の後に表示されるグループが、ユーザーアカウントのプライマリグループです。その他のグループはセカンダリグループです。そのため、以下のスクリーンショットでは、ユーザーアカウントのプライマリグループはexample_primaryです。
1つのコマンドで新しいユーザーを作成し、グループを割り当てます
特定のリソースやフォルダへのアクセス権を持つ新しいユーザーアカウント(例えば、新しいFTPユーザー)を作成したい場合があります。useraddコマンドを使用してユーザーアカウントを作成する際に、以下のように、そのユーザーアカウントを割り当てるグループを指定できます。
sudo useradd -G examplegroup exampleusername
たとえば、jsmith という名前の新しいユーザー アカウントを作成し、このアカウントを ftp グループに割り当てるには、次のコマンドを実行します。
sudo useradd -G ftp jsmith
もちろん、その後このユーザーのパスワードを設定する必要があります。
sudo パスワード jsmith

ユーザーを複数のグループに追加する
ユーザー アカウントにサブグループを割り当てる場合、リストをコンマで区切ることで、複数のグループを一度に簡単に割り当てることができます。
usermod -a -G グループ1、グループ2、グループ3 例のユーザー名
たとえば、geek という名前のユーザーを ftp、sudo、および example グループに追加するには、次のコマンドを実行します。
usermod -a -G ftp、sudo、例 geek

任意の数のグループを指定できます。グループをコンマで区切るだけです。
システム上のすべてのグループを表示
システム上のすべてのグループのリストを表示する場合は、getent コマンドを使用します。
ゲテントグループ

この出力には、どのユーザーアカウントがどのグループのメンバーであるかも表示されます。下のスクリーンショットでは、syslogとubuntuのユーザーアカウントがadmグループのメンバーであることがわかります。
ここでは、Linux 上のグループにユーザーを追加する方法について知っておく必要のあるすべての内容が網羅されています。
Linuxでユーザーをグループに追加することは、単なる技術的なステップではありません。権限を整理し、システムの安全かつ秩序ある運用を確保するための効果的な方法です。usermodやgpasswdなどのシンプルなコマンドを使用することで、システム管理者は各ユーザーのニーズに合わせて権限を微調整できます。このスキルにより、システム管理はより柔軟かつ効率的になり、すべてのユーザーにとって整理された安全な作業環境を提供できます。