ウェブサイト検索

LinuxでGroupaddを使ってユーザーグループを管理する方法


Linuxシステムで複数のユーザーを管理する必要がありますか?ここでは、groupadd、usermodなどのコマンドを使用してそれを行う方法を説明します。

個人用コンピュータでLinuxを実行している場合、ユーザー管理は非常に簡単です。しかし、何千人ものユーザーを持つサーバーを運営している場合、管理は深刻な問題となり、注意が必要です。

幸いなことに、Linuxベースのオペレーティングシステムは、システム上のユーザーを制御および管理する方法を提供します。グループを作成し、ユーザーをそれに追加することができます。そして、システム上のすべてのユーザーに対して権限を割り当てる代わりに、ユーザーグループにシステムのワークフローに関連する特権を付与することで、簡単に認可することができます。

Linuxでユーザーグループを作成する

Linuxにはユーザーグループを作成するためのデフォルトのコマンドが付属しています。新しいグループをシステムに追加するには、groupadd コマンドを使用できます。このコマンドの基本構文は次のとおりです:

groupadd [options] groupname

新しいユーザーグループ「作家」を作成するには:

groupadd writers

上記のコマンドを実行すると、システムの/etc/groupおよび/etc/gshadowファイルに新しいエントリーが追加されます。新しいグループエントリーは、ターミナルでcat /etc/groupおよびcat /etc/gshadowと入力することで確認できます。

ユーザーグループを作成できるのは管理者権限を持つユーザーのみです。groupaddコマンドを実行する前に、スーパーユーザーに切り替えるのを忘れないでください。

既に存在する名前でグループを作成しようとすると、次のようなエラーメッセージが表示されます:

groupadd: group 'writers' already exists

ただし、コマンドに-fまたは--forceフラグを使用することで、エラーを無視することができます。

groupadd --force writers
groupadd -f writers

一意のGIDを持つユーザーグループを作成する

新しいユーザーグループを作成すると、システムは自動的にグループID(GID)を割り当てます。グループに特定のグループIDを持たせたい場合は、-g または --gid フラグを使用して行うことができます。

groupadd -g 600 writers
groupadd --gid 600 writers

すでに取得されているグループIDを割り当てようとすると、次のエラーが発生します。

groupadd: GID '600' already exists

推奨はされていませんが、グループIDを強制的に割り当てるために-oまたは--non-uniqueフラグを追加することができます。

groupadd -o -g 600 writers

パスワード付きユーザーグループを作成する

グループにパスワードを追加することはできますが、それはユーザーにとって実際的な利用価値はありません。-p フラグを使用すると、ユーザーグループのパスワードを指定することができます。

groupadd -p secretpassword writers

Linuxでシステムグループを作成する

システムグループと通常のグループにはわずかな違いがあります。システムグループは、バックアップやメンテナンスなどのシステム操作を担当するユーザーを含む特別なグループです。

Linuxでシステムグループを作成するには、-rまたは--systemフラグを使用してください。

groupadd -r hardwareteam
groupadd --system hardwareteam

ユーザーグループのメンバーのリストを取得する

特定のグループに何人のメンバーがいるかを知るには、ターミナルからgetentコマンドを使用できます。以下のコマンドは、'writers'グループにいるすべてのメンバーのリストを表示します。

getent group writers

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

システムにユーザーグループを作成したので、次はそのグループにユーザーを追加する時です。usermodは、ユーザー管理とモデレーションに関連するさまざまなオプションを含む強力なコマンドラインユーティリティです。また、グループにユーザーを簡単に追加することもできます。コマンドの基本的な構文は次のとおりです:

usermod [options] groupname username

既存のユーザーをグループに追加する

既存のユーザーをグループに追加したい場合は、-a および -G フラグが必要です。-G フラグはグループを意味し、-a は追加、追加、または加算を意味します。

usermod -a -G writers randomuser

ユーザーを複数のグループに追加することもできます。グループ名をカンマで区切って入力するだけです。

usermod -a -G writers,admin,owner randomuser

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

新しいユーザーをLinuxシステムに追加したいときは、useraddコマンドを使用できます。Useraddを使用すると、ユーザー作成時にそのユーザーにグループを割り当てることができます。-Gフラグを使うことで、そのユーザーに特定のグループを指定することができます。

useradd -G writers randomuser

ユーザーを複数のグループに追加するのも簡単です。デフォルトのコマンドでカンマ区切りでグループ名を渡すだけです。

useradd -G writers,admin,owner randomuser

グループからユーザーを削除する

グループからユーザーを削除するには、usermodを使用することもできます。Linuxシステムでは、ユーザーに複数のグループが割り当てられることを考慮してください。その中の1つのグループがプライマリグループとして宣言され、その他はセカンダリグループと呼ばれます。

ユーザーをグループから削除しようとしている場合、削除後に少なくとも1つのプライマリグループが残っていることを確認してください。たとえば、ユーザー'ランダム'は、管理者、ライター、編集者というグループの一部であり、管理者がプライマリグループで、残りはセカンダリグループです。

ユーザーをグループの作家と編集者からのみ削除することができます。そのためには、ユーザーが残ってほしいグループ名を指定する必要があります。これは、ユーザー 'random' をグループの編集者から削除するために、次のコマンドを使用することを意味します。

usermod -G writers random

ユーザーをグループに追加する際に使用するコマンドから appendフラグ(-a) を削除するだけでよかったことに注意してください。

Linuxでグループを削除する

ユーザーグループをシステム上に保持したくない場合は、groupdelコマンドを使用してグループを削除できます。コマンドの構文は次のとおりです:

groupdel [options] groupname

ユーザーグループ「ライター」を削除するために:

groupdel writers

存在しないグループを削除しようとすると、次のようなエラーが表示されます:

groupdel: group 'writers' does not exist

Linuxでのユーザーグループの管理

ユーザー管理は、使用する必要があるLinuxコマンドを知らないと難しいことがあります。しかし、モデレーションや管理に関連するコマンドの内情を知ると、とても簡単になります。

サーバー管理者は、自分たちのニーズに適したLinuxディストリビューションを使用するように努めるべきです。これにより、サーバー管理に必要なすべてのツールやユーティリティをすぐに手に入れることができます。

関連記事: