ユーザーをグループに追加する方法(usermod -aG )
Contents
Linuxで、ユーザーをグループに追加する場合について
Linuxでユーザーを特定のグループに追加する場合は、「usermod」を使いますが、このコマンドでオプションを間違うと思っていたようにグループ追加ができない場合があります。
「test01」というユーザーで、グループが「test01」、「apache」に所属しています。
このユーザーで「mysql」のグループを追加するケースで説明します
# id test01 uid=1002(test01) gid=1002(test01) groups=1002(test01),48(apache)
usermod -G でユーザーを特定のグループに追加する場合
「usermod -G」でユーザーに特定のグループを追加すると、セカンダリグループが追加されます。
「usermod -G グループ名 ユーザ名」とすると、今設定しているセカンダリグループが指定したセカンダリグループが上書きされるので注意が必要です。このあたりが落とし穴みたいですね
「test01」は、「test01、apache」のグループに所属しています # id test01 uid=1002(test01) gid=1002(test01) groups=1002(test01),48(apache) 「mysql」のグループを追加します # usermod -G mysql test01 セカンダリグループの「apache」が「mysql」に書き換わります # id test01 uid=1002(test01) gid=1002(test01) groups=1002(test01),27(mysql)
usermod -aG でユーザーを特定のグループに追加する場合
「usermod -G」ではユーザーに特定のグループを追加すると、セカンダリグループが追加置き換わるので、ユーザー追加の場合は、「usermod -aG グループ名 ユーザ名」とすると今設定しているセカンダリグループが新しく指定したセカンダリグループが追加されます。
ユーザーのグループ追加の場合は「usermod -aG グループ名 ユーザ名」を使用しましょう
「test01」は、「test01、apache」のグループに所属しています # id test01 uid=1002(test01) gid=1002(test01) groups=1002(test01),48(apache) 「mysql」のグループを追加します # usermod -aG mysql test01 セカンダリグループの「apache」と「mysql」になっています # id test01 uid=1002(test01) gid=1002(test01) groups=1002(test01),48(apache),27(mysql)
ディスカッション
コメント一覧
グループ名は -Gの直後のはずなので、ユーザ名とグループ名の順序は逆ではないでしょうか?
ご指摘の通り、usermod -G ユーザ名 グループ名の順序が間違っていたので修正しました