この記事のポイント
・グループにメンバーを追加するには gpasswd -a ユーザー名 グループ名 を使う
・gpasswd -a を -a なしで実行するとパスワード設定モードになり追加されない
・usermod -G でも追加できるが既存所属を上書きしないよう -aG 併用が必須
・追加後は id ユーザー名 / cat /etc/group で反映を必ず確認する
そんな質問を、セミナーで何度も受けてきました。
原因のほとんどは、gpasswd や usermod のオプション指定の落とし穴です。とくに usermod -G を -a なしで実行して、既存のセカンダリグループを丸ごと吹き飛ばすという事故は、現場でもよく見かけます。
この記事では、20年以上Linuxサーバーを運用してきた経験から、グループにメンバーを安全に追加する方法と、現場で実際に起きるトラブルとその回避策を解説します。RHEL系(Rocky Linux 9 / RHEL 9)、Ubuntu系(Ubuntu 22.04 / 24.04 LTS)の両方で動作確認しています。
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
グループにメンバーを追加する基本:gpasswd -a の使い方
既存グループにメンバーを追加するには、gpasswdコマンドにオプション「-a」を付けて実行します。引数には、追加するユーザー名、グループ名を指定して実行します。この処理は、root、またはグループ管理者に登録されているユーザーが実行できます。
グループに管理者を設定する
■グループ管理者に登録されているユーザーがメンバー追加する
[pakira@Tiger ~]$ whoami ←グループ管理者であることを確認します。 pakira [pakira@Tiger ~]$ gpasswd -a miyazaki unyo ←miyazakiをunyoグループに追加します。 Adding user miyazaki to group unyo [pakira@Tiger ~]$ cat /etc/group | grep miyazaki ←グループに追加されていることを確認します。 unyo:x:600:miyazaki miyazaki:x:601:
rootユーザーで追加する場合
グループ管理者を介さず、rootで直接追加することもできます。サーバー構築時の初期セットアップでは、こちらの形がほとんどです。# rootでmiyazakiをwheelグループに追加 [root@Tiger ~]# gpasswd -a miyazaki wheel Adding user miyazaki to group wheel # 確認 [root@Tiger ~]# id miyazaki uid=601(miyazaki) gid=601(miyazaki) groups=601(miyazaki),10(wheel)
【重要】gpasswd の -a を忘れると何が起こるか
ここがgpasswdの最大の落とし穴です。gpasswdコマンドを -a オプションなしで実行すると、ユーザー追加ではなく「グループパスワードの設定モード」に入ります。何度パスワードを設定しても、メンバーは追加されません。
# -aを忘れた場合(誤った使い方) [root@Tiger ~]# gpasswd unyo Changing the password for group unyo New Password: ←これはグループパスワード設定モード Re-enter new password: # 確認しても miyazaki は追加されていない [root@Tiger ~]# cat /etc/group | grep unyo unyo:x:600:
gpasswd でメンバーを削除する:-d オプション
追加と対になる操作として、削除も覚えておくと便利です。gpasswdコマンドに -d オプションを付けて実行します。# miyazakiをunyoグループから削除 [root@Tiger ~]# gpasswd -d miyazaki unyo Removing user miyazaki from group unyo # 確認 [root@Tiger ~]# cat /etc/group | grep unyo unyo:x:600:
usermod -G でメンバーを追加する:必ず -aG をセットで使う
gpasswd以外に、usermodコマンドでもグループへの追加ができます。ただし、usermodの -G には致命的な罠があります。■usermod -G の罠(-a なしは既存所属を上書きする)
# miyazakiの現在のセカンダリグループを確認 [root@Tiger ~]# id miyazaki uid=601(miyazaki) gid=601(miyazaki) groups=601(miyazaki),10(wheel),600(unyo) # -aなしで実行(事故の典型例) [root@Tiger ~]# usermod -G developers miyazaki # wheelとunyoが消えた [root@Tiger ~]# id miyazaki uid=601(miyazaki) gid=601(miyazaki) groups=601(miyazaki),1001(developers)
これを防ぐには、必ず -a(append)と -G をセットで指定します。
# -aGをセットで使う(正しい使い方) [root@Tiger ~]# usermod -aG developers miyazaki # 既存のwheel・unyoを残しつつ、developersが追加される [root@Tiger ~]# id miyazaki uid=601(miyazaki) gid=601(miyazaki) groups=601(miyazaki),10(wheel),600(unyo),1001(developers)
gpasswd と usermod の使い分け:現場での判断軸
両方ともグループにメンバーを追加できますが、現場では用途で使い分けます。| コマンド | 用途 | 注意点 |
|---|---|---|
gpasswd -a ユーザー名 グループ名 | 1ユーザーを1グループに追加 | -a を忘れない |
gpasswd -d ユーザー名 グループ名 | 1ユーザーを1グループから削除 | ログイン中ユーザーは再ログイン必要 |
usermod -aG グループ名 ユーザー名 | セカンダリグループに追加(既存維持) | 必ず -a と -G をセットで |
usermod -G グループ1,グループ2 ユーザー名 | セカンダリグループを指定リストに上書き | 既存所属が消えるので意図して使う |
usermod -g グループ名 ユーザー名 | プライマリグループの変更 | 小文字-gはプライマリ専用 |
追加した後の反映確認とトラブル対処
グループにメンバーを追加した後、必ず反映を確認します。チェックには次の3つを使い分けます。■idコマンドでユーザーの所属グループを表示
[root@Tiger ~]# id miyazaki uid=601(miyazaki) gid=601(miyazaki) groups=601(miyazaki),10(wheel),600(unyo)
[root@Tiger ~]# groups miyazaki miyazaki : miyazaki wheel unyo
[root@Tiger ~]# grep miyazaki /etc/group wheel:x:10:miyazaki unyo:x:600:miyazaki miyazaki:x:601:
追加したのにグループ権限が使えない時の対処
「追加したはずなのに、そのグループの権限でファイルにアクセスできない」というトラブルもよくあります。原因は、ログイン中のセッションがグループ追加前の情報を保持しているためです。対処は次の2つです。
・対象ユーザーを一度ログアウトさせて再ログインする
・newgrp コマンドで現在のシェルを新しいグループで開き直す
# 現在のシェルに developers グループを反映 [miyazaki@Tiger ~]$ newgrp developers [miyazaki@Tiger ~]$ id uid=601(miyazaki) gid=1001(developers) groups=601(miyazaki),10(wheel),600(unyo),1001(developers)
本記事のまとめ
グループにメンバーを追加するコマンドを一覧でまとめます。| やりたいこと | コマンド |
|---|---|
| グループにメンバーを追加する | gpasswd -a miyazaki unyo |
| グループからメンバーを削除する | gpasswd -d miyazaki unyo |
| セカンダリグループに追加(既存維持) | usermod -aG developers miyazaki |
| セカンダリグループを上書きする | usermod -G developers,wheel miyazaki |
| プライマリグループを変更する | usermod -g developers miyazaki |
| 所属グループを確認する | id miyazaki または groups miyazaki |
| 現在のシェルにグループを反映 | newgrp developers |
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:グループパスワードを削除する|gpasswd -r / -R の使い分けと現代運用の判断軸
- 前のページへ:groupaddコマンドでグループIDを指定してグループを追加する方法|GID管理の実務も
- この記事の属するカテゴリ:ユーザー管理へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます