あるuserをサブグループhogeに追加したい時にusermodコマンドで追加するときの注意点
単純に
# usermod -G hoge user
とすると、元々userが所属していたグループにhogeを追加するのではなく、hogeのみがuserが所属するグループになる。
もしadminユーザーなどでこれを行ってしまうと、sudoできるユーザーがいなくなりたいへんなことに。
usermodコマンドで追加したいときは、-Gオプションで所属させたいすべてのグループを列挙するか、さらに-aオプションを追加する。
# usermod -aG hoge user
もしくはgpasswdコマンドも使える。
# gpasswd -a user hoge
usermodコマンドとはuserとgroupの引数の順番が逆なのに注意。
間違って-Gオプションのみで実行してしまったときの復旧方法
groupの設定は、/etc/groupに記述されており、一世代前の設定は末尾に-をつけたファイル、/etc/group-としてバックアップが自動的に取られている。これを/etc/groupとして上書きしなおせば復旧可能。
ただし、/etc/group-はパーミッションが600になっているのに対して、/etc/groupは644なので、パーミッションに注意する。600のままだとroot以外の一般ユーザーでgroupsコマンドを実行すると設定が読み込めず、グループ名がみつからないといったエラーになるので注意。
# mv /etc/group- /etc/group
# chmod 644 /etc/group