グループパスワードを削除する|gpasswd -r / -R の使い分けと現代運用の判断軸

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, システム管理, ユーザー管理 > グループパスワードを削除する|gpasswd -r / -R の使い分けと現代運用の判断軸
「グループに設定したパスワードを削除したいが、どのコマンドを使えばよいか」
「gpasswd -r と gpasswd -R の違いがわからない」
「グループパスワード自体、本当に必要なのか?」

この記事では、Linuxでグループパスワードを削除する手順を、現役のサーバー管理者の立場で実務的に解説します。
gpasswd -r / gpasswd -R の使い方と違い、削除後の動作確認、グループ管理者の権限の仕組み、そして「現代の運用ではグループパスワードを使うべきか」という設計判断までを一気通貫で扱います。
動作確認環境:RHEL 9.4 / Ubuntu 24.04 LTS / shadow-utils 4.x。

この記事のポイント

・グループパスワードの削除は gpasswd -r でパスワード自体を削除する
・gpasswd -R はパスワード入力でのアクセスを「制限」する設定(削除とは別概念)
・/etc/gshadow の該当グループ行の第2フィールドが ! になれば削除成功
・現代のLinux運用ではsudoersでの権限管理が主流、グループパスワードは非推奨


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

グループパスワードとは何か:newgrp で使う共有認証の仕組み

Linuxには「グループパスワード」という、グループ単位で設定できるパスワードがあります。これは newgrp コマンドで一時的に別のグループに切り替える際の認証に使われます。

例えばユーザー pakira がプライマリグループ pakira に所属している状態で、ファイル共有用のグループ unyo に一時的に切り替えたい場合、unyo グループに pakira が登録されていれば newgrp unyo でパスワードなしで切り替えできます。pakira が unyo に未登録の場合は、グループパスワードを入力して切り替えます。

# グループパスワードを設定する(参考) $ sudo gpasswd unyo Changing the password for group unyo New Password: Re-enter new password: # 別グループに切り替える時にパスワードが要求される $ newgrp unyo Password:

つまりグループパスワードは「複数ユーザーが共有する認証情報」です。後述しますが、共有パスワードは現代のセキュリティ運用では推奨されません。

グループパスワードを削除する基本:gpasswd -r コマンド

設定済みのグループパスワードを削除するには、gpasswdコマンドにオプション「-r」を付けて実行します。引数には削除したいグループ名を指定します。

この処理は、root、またはグループ管理者に登録されているユーザーが実行できます。

[pakira@Tiger ~]$ whoami  # グループ管理者であることを確認 pakira [pakira@Tiger ~]$ sudo gpasswd -r unyo  # グループ「unyo」のパスワードを削除

実行後、対話的なプロンプトは表示されません。エラーが出なければ削除完了です。

gpasswd -r と gpasswd -R の違い:パスワード削除 vs アクセス制限

混同しやすい2つのオプションを整理します。

gpasswd -r:グループのパスワード自体を削除する。/etc/gshadow の第2フィールドが ! になる。誰もパスワード経由でグループに入れなくなるが、メンバー登録されているユーザーは newgrp で入れる
gpasswd -R:グループパスワード経由の newgrp を「禁止」する設定。/etc/gshadow の第2フィールドが ! に変わる点は -r と同じだが、意味合いは「無効化」

現代のshadow-utilsでは、-r と -R は実質的に同じ結果(パスワードフィールドを ! でマーク)を生み出します。歴史的経緯で2つのオプションが残っていますが、現場では -r を使うのが一般的です。
オプション 意味 /etc/gshadow への影響
gpasswd グループ名 パスワードを新規設定または変更 第2フィールドにハッシュが入る
gpasswd -r グループ名 パスワードを削除 第2フィールドが ! になる
gpasswd -R グループ名 パスワード経由のアクセスを制限 第2フィールドが ! になる
gpasswd -a ユーザー グループ名 グループにメンバー追加 第4フィールドにユーザー名追加
gpasswd -d ユーザー グループ名 グループからメンバー削除 第4フィールドからユーザー名削除

削除後の動作確認:/etc/gshadow をチェックする

グループパスワード削除の結果は /etc/gshadow ファイルで確認できます。このファイルは root のみ読み取り可能です。

# 削除前の状態(パスワードがハッシュで設定されている) $ sudo grep "^unyo:" /etc/gshadow unyo:$6$abcdef$xxxxxxxxxxxxxxxxxxxxx:pakira:pakira,taro # 削除後の状態(第2フィールドが !) $ sudo grep "^unyo:" /etc/gshadow unyo:!:pakira:pakira,taro

/etc/gshadow のフィールド構成は「グループ名:パスワードハッシュ:管理者:メンバー」の4つのコロン区切りです。第2フィールドが ! になっていれば、グループパスワードは正常に削除されています。

newgrp で削除を確認する:実際に切り替えできなくなることを確認する

パスワード削除後、グループに未登録のユーザーが newgrp で切り替えできないことを確認します。

# メンバーでないユーザーで切り替えを試す [hanako@Tiger ~]$ newgrp unyo Password: crypt: Invalid argument newgrp: Permission denied # メンバー登録されているユーザーはパスワードなしで切り替え可能 [pakira@Tiger ~]$ newgrp unyo [pakira@Tiger ~]$ id uid=1000(pakira) gid=1001(unyo) groups=1001(unyo),1000(pakira)

「Permission denied」が表示されれば、パスワード削除は正しく動作しています。

関連コマンド:グループ管理の基本操作

グループパスワード削除と一緒に押さえておきたい関連操作を整理します。

# グループにユーザーを追加する $ sudo gpasswd -a pakira unyo Adding user pakira to group unyo # グループからユーザーを削除する $ sudo gpasswd -d pakira unyo Removing user pakira from group unyo # グループ管理者を設定する $ sudo gpasswd -A pakira unyo # グループ自体を削除する(メンバーがいないことを先に確認) $ sudo groupdel unyo

groupdel はメンバーが残っているグループに対しても実行可能なので、運用上はメンバーを先に削除しておくのが安全です。

【重要】現代のLinux運用でグループパスワードを使うべきか

正直に言うと、現代のサーバー運用ではグループパスワードはほぼ使われません。私のセミナーで3,100名以上を指導してきた中で、本番環境でグループパスワードを設定している現場を見たことは一度もありません。理由は以下の通りです。

共有パスワードはセキュリティ監査で必ず指摘される:誰が使ったか追跡できない
sudoers での権限管理が標準:個別ユーザー+sudo の組み合わせが圧倒的に主流
ACL / setgid ディレクトリで代替可能:ファイル共有の用途は setgid と ACL で十分まかなえる
SSO / IdP連携が普及:LDAP / FreeIPA / Active Directory での集中管理が現代の標準

グループパスワードを削除する場面は「過去のシステムから引き継いだ古い設定を整理する」ケースが大半です。新規にグループパスワードを設定する必要は基本的にありません。

「Permission denied」「You can't change ...」が出た時の対処

gpasswd -r 実行時によく出るエラーへの対処を整理します。

# 一般ユーザーで実行した場合 $ gpasswd -r unyo You can't change the password for unyo. # 対処:rootまたはsudoで実行する $ sudo gpasswd -r unyo # 存在しないグループを指定した場合 $ sudo gpasswd -r nonexist gpasswd: group 'nonexist' does not exist in /etc/group # 対処:getent group でグループ名を正しく確認する $ getent group | grep unyo unyo:x:1001:pakira,taro

「You can't change」は権限不足、「does not exist」はグループ名のtypoが原因です。getent group で実在を必ず確認してください。

本記事のまとめ:グループパスワード削除コマンド早見表

やりたいこと コマンド
グループパスワードを削除する sudo gpasswd -r グループ名
グループパスワードによるアクセスを制限する sudo gpasswd -R グループ名
削除を確認する(/etc/gshadow) sudo grep "^グループ名:" /etc/gshadow
newgrpで動作確認する newgrp グループ名
グループメンバーを確認する getent group グループ名
グループ自体を削除する sudo groupdel グループ名
グループパスワードを削除した後は、運用方針として sudoers / ACL / setgid 等の現代的な権限管理に移行することを強く推奨します。古い仕組みを整理することはセキュリティ強化の第一歩です。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。