Linuxのグループ(または2番目のグループ)にユーザーを追加する

ユーザーが関連付けられているグループの変更は非常に簡単な作業ですが、特にユーザーをセカンダリグループに追加するためのコマンドを誰もが知っているわけではありません。すべてのシナリオを順を追って説明します。

Linuxでは、ユーザーアカウントを1つ以上のグループに割り当てることができます。グループごとにファイルのアクセス許可やその他の特権を構成できます。たとえば、Ubuntuでは、sudoグループのユーザーのみがsudoコマンドを使用して昇格された権限を取得できます。

新しいグループを追加する

関連:LinuxのSudoとSuの違いは何ですか?

システムに新しいグループを作成する場合は、groupadd コマンドに続くコマンドを使用して、new_groupを作成するグループの名前に置き換えます。このコマンドでもsudoを使用する必要があります(または、を使用しないLinuxディストリビューションではsudosu コマンドを実行する前に、コマンドを単独で実行して昇格されたアクセス許可を取得する必要があります )。

sudo groupadd mynewgroup

グループに既存のユーザーアカウントを追加する

システム上のグループに既存のユーザーアカウントを追加するには、usermod コマンドを使用してexamplegroup、ユーザーを追加するグループの名前と追加するユーザーの名前に置き換えexampleusername  ます。

usermod -a -G examplegroup exampleusername

たとえば、ユーザーgeekをグループに追加するsudoには、次のコマンドを使用します。

usermod -a -G sudo geek

ユーザーのプライマリグループを変更する

ユーザーアカウントは複数のグループの一部にすることができますが、グループの1つは常に「プライマリグループ」であり、他のグループは「セカンダリグループ」です。ユーザーのログインプロセスと、ユーザーが作成するファイルとフォルダーがプライマリグループに割り当てられます。

ユーザーが割り当てられているプラ​​イマリグループを変更するには、usermod コマンドを実行しexamplegroup  、プライマリにしたいグループexampleusernameの名前とユーザーアカウントの名前に置き換えます。

usermod -ggroupnameユーザー名

ここに注意して-gください。小文字のgを使用する場合は、プライマリグループを割り当てます。-G上記のように大文字を使用する場合は、新しいセカンダリグループを割り当てます。

ユーザーアカウントが割り当てられているグループを表示する

現在のユーザーアカウントが割り当てられているグループを表示するには、groups  コマンドを実行します。グループのリストが表示されます。

グループ

各グループに関連付けられている数値IDを表示するには、id  代わりに次のコマンドを実行します。

id

別のユーザーアカウントが割り当てられているグループを表示するには、groups コマンドを実行してユーザーアカウントの名前を指定します。

グループexampleusername

id コマンドを実行してユーザー名を指定することにより、各グループに関連付けられている数値IDを表示することもできます。

id exampleusername

groupsリストの最初のグループ、またはリストの「gid =」の後に表示されるグループidは、ユーザーアカウントのプライマリグループです。他のグループはセカンダリグループです。したがって、以下のスクリーンショットでは、ユーザーアカウントのプライマリグループはexampleです。

1つのコマンドで新しいユーザーを作成してグループを割り当てる

新しいFTPユーザーのように、特定のリソースまたはディレクトリにアクセスできる新しいユーザーアカウントを作成したい場合があります。useradd 次のように、コマンドを使用してユーザーアカウントの作成中に、ユーザーアカウントが割り当てられるグループを指定できます。

useradd -G examplegroup exampleusername

たとえば、jsmithという名前の新しいユーザーアカウントを作成し、そのアカウントをftpグループに割り当てるには、次のコマンドを実行します。

useradd -G ftp jsmith

もちろん、後でそのユーザーにパスワードを割り当てることをお勧めします。

passwd jsmith

複数のグループにユーザーを追加する

セカンダリグループをユーザーアカウントに割り当てる際、リストをカンマで区切ることにより、一度に複数のグループを簡単に割り当てることができます。

usermod -a -G group1、group2、group3 exampleusername

たとえば、geekという名前のユーザーをftp、sudo、およびexampleグループに追加するには、次のコマンドを実行します。

usermod -a -G ftp、sudo、example geek

グループはいくつでも指定できます。すべてをコンマで区切るだけです。

システム上のすべてのグループを表示

システム上のすべてのグループのリストを表示する場合は、getent 次のコマンドを使用できます。

getentグループ

この出力には、どのユーザーアカウントがどのグループのメンバーであるかも表示されます。したがって、以下のスクリーンショットでは、ユーザーアカウントsyslogとchrisがadmグループのメンバーであることがわかります。

これで、Linux上のグループにユーザーを追加するために知っておく必要のあるすべてが網羅されているはずです。