Make組ブログ

Python、Webアプリや製品・サービス開発についてhirokikyが書きます。

Ubuntuでユーザをサブグループに追加するときの注意点

ユーザをグループに追加する際の注意点です。usermod -G は使わないように。

usermod -G は使わない

ユーザにサブグループを設定する方法として、よく見るコマンドに

usermod -G group user

がありますが、これを使うのはUbuntuではオススメしません。なぜならusermod -Gは所属させたいサブグループをすべて列挙する必要があるからです。ここでUbuntuの場合、sudo権限をもつユーザはadminというサブグループに予め所属しています。なのでうっかり上記のようなコマンドを実行すると、adminグループに所属しないことになり、sudo権限を失ってしまいます。マジでコワイ。
やってしまうと

user is not in the sudoers file. This incident will be reported.

と怒られることになります。
解決方法は

再起動->セーフモードでログイン->サブグループadminへの追加

でいけました。

usermod -G の代替

usermod -Gは危険なので使いたくないので、代わりに gpasswd -a を使いましょう。

gpasswd -a user group

で追加ができます。教えていただいた @naoina さんありがとうございます。
usermod -G は恐ろしいのでaliasで封印しました。

まとめ

Ubuntuでは usermod -G の代わりに gpasswd -a を使いましょう