groupadd、usermod、groupdel を使用した Linux グループの管理

CompTIABeginner
オンラインで実践に進む

はじめに

この実験では、Linux 環境におけるユーザーグループ管理の必須スキルを習得します。新しいグループを作成する groupadd、ユーザーの所属を変更する usermod、システムからグループを削除する groupdel など、グループ管理の核となるコマンドラインユーティリティを実際に操作しながら体験します。

実務に即したワークフローに沿って、まずは新しいグループの作成から始めます。次に、既存のユーザーをそのグループに追加し、grepgroups といった確認用コマンドを使用して変更内容を検証します。最後に、グループを削除してその削除を確認する手順を練習し、グループ管理のライフサイクル全体を網羅します。

groupadd による新しい Linux グループの作成

このステップでは、Linux システム上に新しいユーザーグループを作成する方法を学びます。Linux において、グループは複数のユーザーの権限を同時に管理するための極めて重要な仕組みです。各ユーザーに個別に権限を割り当てる代わりに、グループに権限を割り当てることで、そのグループに所属するすべてのユーザーがその権限を継承できます。これにより、特にユーザー数が多い環境でのシステム管理が大幅に簡素化されます。

この演習では、あなたが企業のシステム管理者であり、新しく配属される研究開発チームのために新しいグループを作成する必要があると仮定します。これを行うには groupadd コマンドを使用します。このコマンドには管理者権限が必要なため、sudo を使用して実行します。

まず、ターミナルを開きます。デフォルトのディレクトリ ~/project で開いているはずです。それでは、research という名前の新しいグループを作成しましょう。

以下のコマンドを実行してください。

sudo groupadd research

sudo コマンドは、この管理タスクを実行するために権限を昇格させます。groupadd はグループを作成するコマンドで、research は新しいグループに指定した名前です。

コマンドが成功した場合、出力は何も表示されません。グループが作成されたことを確認するには、/etc/group ファイルをチェックします。このファイルには、システム上のすべてのグループに関する情報が保存されています。grep コマンドを使用して、このファイル内から作成したばかりのグループを検索できます。

grep research /etc/group

出力に research グループに対応する新しい行が表示されるはずです。フォーマットは グループ名:パスワードプレースホルダー:グループID:メンバー です。グループ ID(GID)は、システムによって自動的に割り当てられるため、以下の例とは異なる場合がありますが、問題ありません。

research:x:5003:

この出力により、research グループがシステム上に存在し、ユーザーを追加できる状態であることが確認できました。

usermod によるサブグループへのユーザー追加

このステップでは、作成した research グループに既存のユーザーを追加します。Linux では、各ユーザーは 1 つの「プライマリグループ(主グループ)」を持ち、複数の「サブグループ(副グループまたは補助グループ)」に所属することができます。これにより、柔軟な権限管理が可能になります。research グループの準備が整ったので、現在のユーザーである labex をサブグループとして追加します。これにより、labex ユーザーのプライマリグループを変更することなく、research グループに割り当てられた権限を付与できます。

ユーザーのグループ所属を変更するには、usermod コマンドを使用します。これはユーザーアカウントの詳細を変更するための強力なユーティリティです。

usermod コマンドに -aG オプションを付けて使用します。

  • -G: 新しいサブグループのリストを指定します。
  • -a: "append(追加)" を意味します。これは非常に重要なオプションです。ユーザーを現在のグループから削除することなく、指定したグループに追加します。もし -a を忘れると、そのユーザーはコマンドで指定しなかった他のすべてのサブグループから除外されてしまいます。

ターミナルで以下のコマンドを実行し、labex ユーザーを research グループに追加します。

sudo usermod -aG research labex

このコマンドはシステムレベルのユーザー情報を変更するため、sudo が必要です。research は追加先のグループ名、labex は変更対象のユーザー名です。groupadd と同様に、正常に実行された場合は出力が表示されません。

/etc/group ファイルを再度確認することで、変更をすぐに検証できます。

grep research /etc/group

research グループの行の末尾に labex ユーザーが表示されているはずです。

research:x:5003:labex

これで、labexresearch グループのメンバーになったことが確認されました。

grep と groups によるグループ所属の確認

このステップでは、ユーザーのグループ所属をより効率的に確認する方法を学びます。これまでは /etc/group ファイルに対して grep を使用して特定のグループのメンバーを確認してきましたが、特定のユーザーが所属しているすべてのグループを表示する、より直接的な方法があります。これは、権限や設定を確認するシステム管理者にとって一般的な作業です。

まず、再び grep を使用しますが、今回はユーザー labex が所属しているすべてのサブグループを探します。/etc/group ファイル内でユーザー名を検索することで、labex がメンバーとしてリストされているすべてのグループエントリを確認できます。

ターミナルで次のコマンドを実行してください。

grep labex /etc/group

出力には、文字列 "labex" を含む /etc/group 内のすべての行が表示されます。これには、先ほど追加した research グループや、その他のデフォルトのサブグループが含まれます。システムの構成によっては、追加のグループが表示される場合もあります。

sudo:x:27:labex
ssl-cert:x:121:labex
labex:x:5000:
public:x:5002:labex
research:x:5003:labex

この方法でも確認できますが、より直接的で分かりやすいコマンドが groups です。このコマンドは、指定したユーザーのすべてのグループ(プライマリおよびサブグループの両方)をリストするために特別に設計されています。

labex ユーザーが所属するすべてのグループを表示するには、次のコマンドを実行します。

groups labex

このコマンドは、ユーザーのグループ所属を 1 行で簡潔にまとめて表示します。

labex : labex sudo ssl-cert public research

この出力において、コロンの前にある名前(labex)は照会されたユーザーです。コロンの後のリストはすべてのグループを示しています。リストの最初のグループ(labex)はユーザーの「プライマリグループ」です。それに続くすべてのグループ(sudossl-certpublicresearch)は「サブグループ」です。このコマンドは、ユーザーのグループ所属の全体像を把握するための最も迅速な方法です。

groupdel によるグループの削除と削除の確認

最後のステップでは、システムからグループを削除する方法を学びます。これは、チームの解散やプロジェクトの終了に伴い、関連するグループが不要になった際に行われる一般的な管理タスクです。グループを削除するには、groupdel コマンドを使用します。

グループの作成と同様に、削除も sudo 権限を必要とする管理アクションです。重要な注意点として、既存ユーザーの「プライマリグループ」を削除することはできません。古いプライマリグループを削除する前に、まずそのユーザーのプライマリグループを変更する必要があります。しかし、今回の researchlabex にとってサブグループに過ぎないため、問題なく削除できます。

ターミナルで以下のコマンドを実行し、research グループを削除します。

sudo groupdel research

groupdel コマンドが成功すると、出力は表示されません。このコマンドは、システムのグループデータベース(主に /etc/group ファイル)から該当するグループのエントリを削除します。

グループが正常に削除されたことを確認するために、以前に使用したのと同じ grep コマンドを実行します。

grep research /etc/group

今回は、コマンドを実行しても何も出力されないはずです。すぐにコマンドプロンプトに戻ります。この「出力がないこと」こそが、/etc/group ファイルから research を含む行が削除され、システム上にそのグループが存在しなくなったことの証明になります。

まとめ

この実験では、Linux 環境におけるユーザーグループ管理の基本を学びました。まず、ユーザーの整理や権限管理の簡素化に不可欠なツールである sudo groupadd コマンドを使用して、research という名前の新しいグループを作成しました。グループが正しく作成されたことを確認するために、grep コマンドで /etc/group ファイルを調べ、新しいグループエントリが正しく追加されていることを検証しました。

また、この実験ではグループ管理のライフサイクル全体を網羅しました。usermod コマンドを使用して既存のユーザーをサブグループに追加する方法や、grepgroups といったツールを使用してグループの所属状況を確認する方法を学びました。最後に、groupdel コマンドを使用してシステムからグループを削除し、その削除を確認する手順を実践しました。これにより、主要なグループ管理タスクについての理解を深めることができました。