CodeGym /コース /Docker SELF /グループ管理: グループの作成、ユーザーの追加・削除 (`groupadd`, `usermod -aG`, `g...

グループ管理: グループの作成、ユーザーの追加・削除 (`groupadd`, `usermod -aG`, `groups`)

Docker SELF
レベル 2 , レッスン 2
使用可能

グループ管理: グループの作成、ユーザーの追加・削除 groupadd, usermod -aG, groups

1. Linuxのグループとの出会い

Linuxのオペレーティングシステムでは、ユーザーを興味、責任、またはその他の基準に応じてグループ化し、共通のアクセス権を割り当てることができます。今日は、このグループに取り組み、ユーザーを追加し、それをうまく管理する方法を見ていくよ。準備いい?じゃあ、進めよう!

まずはリアルな例えから始めよう。オンラインゲームでギルドがあると想像してみて。各ギルドにはメンバーがいて、彼らは共通のリソースにアクセスできるんだ:倉庫、チャット、戦略部屋など。Linuxのグループも同じような役割を果たしているよ。グループでは次のことが可能です:

  1. 複数のユーザーのファイルやリソースへのアクセス管理を簡素化する。
  2. ユーザーを役割やタスクに応じてチームに分ける。
  3. システム管理者の頭痛を最小限に抑える。

システムがユーザーがファイルにアクセスできるかどうかを確認する際、3つの権限レベルを確認する: ファイルの所有者、グループ、その他のユーザー。ユーザーがファイルの指定されたグループに属していて、そのグループがアクセス権を持っている場合、そのユーザーは満足し、管理者も喜ぶんだ。


2. グループ管理の基本コマンド

Linuxでは、グループを操作するための便利で強力なツールがいくつか用意されています: groupadd, usermod, groups, groupdel および gpasswd。これらを一つずつ見ていきましょう。

1. 新しいグループを作成する groupadd

システムで新しいグループを作成するのは簡単です。そのためには groupadd コマンドを使用します。例えば、developers という名前のグループを作成する場合、次のようにします:

sudo groupadd developers

これで完了! グループが作成されました。それが実際に存在するか確認するには、/etc/group ファイルを確認します — システム内すべてのグループの連絡先リストのようなものです:

cat /etc/group | grep developers

次のような行が表示されます:

developers:x:1001:

ここでの各項目の意味:

  • developers — グループ名。
  • x — パスワードフィールド(通常使用されない)。
  • 1001 — ユニークなGroup ID (GID)。
  • 2つ目のコロンの後の空欄 — ここにそのグループのユーザーが追加されます。
ちょっとしたジョーク:

GIDがグループの電話番号なら、/etc/groupはその電話帳だね。


2. ユーザーをグループに追加する usermod -aG

では、新しいグループ developers に開発者を追加してみましょう。そのためには usermod コマンドとオプション -aG を使用します。例えば、ユーザー john を追加する場合:

sudo usermod -aG developers john

ここで覚えておくべきポイント:

  • キー -aappend (追加) を意味します。これを忘れると、指定したグループ以外のすべてのグループからユーザーが削除される可能性があります。
  • キー -G はユーザーを追加するグループを指定します。

ユーザーが所属するグループを確認するには groups コマンドを使用します:

groups john

または、もう少し詳細に id コマンドを使うこともできます:

id john

出力例は次のようになります:

uid=1002(john) gid=1002(john) groups=1002(john),1001(developers)

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

もし「開発者」の一人がバリスタに転職するなら、そのグループから削除する必要があります。これには gpasswd コマンドを使用します:

sudo gpasswd -d john developers

これでユーザー johndevelopers グループに属していなくなります。groups john を使って確認するのを忘れずに、正式に削除されたことを確認してください。


4. グループを削除する groupdel

グループが不要になった場合、groupdel コマンドで削除できます。例えば:

sudo groupdel developers
注意!

グループに残っているユーザーには影響しません。ただ、そのグループを参照する可能性がなくなるだけです。


3. 実践課題

本当にプロの管理者のように、グループを作成して設定してみよう!

シナリオ:

  1. designersグループを作成。
  2. 新しいユーザー2人を作成: alicebob
  3. これらのユーザーをdesignersグループに追加。
  4. ユーザーが実際にグループに追加されたか確認。
  5. alicedesignersグループから削除。

解決法:

手順 1. グループを作成

sudo groupadd designers

手順 2. ユーザーを作成

sudo adduser alice
sudo adduser bob

手順 3. ユーザーをグループに追加

sudo usermod -aG designers alice
sudo usermod -aG designers bob

手順 4. 追加を確認

groups alice
groups bob

手順 5. aliceをグループから削除

sudo gpasswd -d alice designers

4. 特徴とよくある間違い

グループ作業って、子猫みたいなものです:簡単そうに見えるけど、少し目を離すとカオスに陥ります:

  1. -aGオプション-aをつけ忘れると、新しいグループ以外の全グループからユーザーを間違って削除しちゃいます。システムグループ(例えばsudo)のメンバーだった場合、これは特に「楽しい」状況になります。

  2. 変更の適用は再ログイン後に有効。もしユーザーが新しいグループをすぐに見つけられなくても、慌てないでください!システムからログアウトして再ログインする必要があります。そうすることで新しい権限が適用されます。

  3. 命名規則に注意。グループ名にはスペースや特殊文字を使わないでください。例えばawesome@groupのような名前はうまく動作せず、管理者を困らせます。

  4. アクセス権を確認。グループを作成して追加しましたか?それはいいですが、ファイルにグループ用の権限がなければ、ユーザーの期待を裏切ることになります。ルールとしてこれを覚えておいてください:権限は検証され、個別に割り当てられるべきです。

実際の利用例

実プロジェクトではグループ管理は以下のように使われます:

  • 開発者、テスター、管理者のためにサーバーリソースへのアクセス権を分割する。
  • チーム用の共有作業ディレクトリを設定する。
  • データベース、設定ファイル、スクリプト、そしてもちろんコーヒーマシンへのアクセスを管理する(まあ、ここはLinuxがまだ役に立たないけどね)。

これでLinuxでのグループの作成と管理方法を知ったので、あなたのシステムをエレガントかつ効率的に管理する準備が整いました。

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION