Linuxのグループ(または2番目のグループ)にユーザーを追加する
ユーザーが関連付けられているグループの変更は非常に簡単な作業ですが、特にユーザーをセカンダリグループに追加するためのコマンドを誰もが知っているわけではありません。すべてのシナリオを順を追って説明します。
Linuxでは、ユーザーアカウントを1つ以上のグループに割り当てることができます。グループごとにファイルのアクセス許可やその他の特権を構成できます。たとえば、Ubuntuでは、sudoグループのユーザーのみがsudo
コマンドを使用して昇格された権限を取得できます。
新しいグループを追加する
関連:LinuxのSudoとSuの違いは何ですか?
システムに新しいグループを作成する場合は、groupadd
コマンドに続くコマンドを使用して、new_groupを作成するグループの名前に置き換えます。このコマンドでもsudoを使用する必要があります(または、を使用しないLinuxディストリビューションではsudo
、su
コマンドを実行する前に、コマンドを単独で実行して昇格されたアクセス許可を取得する必要があります )。
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上のグループにユーザーを追加するために知っておく必要のあるすべてが網羅されているはずです。