グループ管理: グループの作成、ユーザーの追加・削除 groupadd
, usermod -aG
, groups
1. Linuxのグループとの出会い
Linuxのオペレーティングシステムでは、ユーザーを興味、責任、またはその他の基準に応じてグループ化し、共通のアクセス権を割り当てることができます。今日は、このグループに取り組み、ユーザーを追加し、それをうまく管理する方法を見ていくよ。準備いい?じゃあ、進めよう!
まずはリアルな例えから始めよう。オンラインゲームでギルドがあると想像してみて。各ギルドにはメンバーがいて、彼らは共通のリソースにアクセスできるんだ:倉庫、チャット、戦略部屋など。Linuxのグループも同じような役割を果たしているよ。グループでは次のことが可能です:
- 複数のユーザーのファイルやリソースへのアクセス管理を簡素化する。
- ユーザーを役割やタスクに応じてチームに分ける。
- システム管理者の頭痛を最小限に抑える。
システムがユーザーがファイルにアクセスできるかどうかを確認する際、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
ここで覚えておくべきポイント:
- キー
-a
は append (追加) を意味します。これを忘れると、指定したグループ以外のすべてのグループからユーザーが削除される可能性があります。 - キー
-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
これでユーザー john
は developers
グループに属していなくなります。groups john
を使って確認するのを忘れずに、正式に削除されたことを確認してください。
4. グループを削除する groupdel
グループが不要になった場合、groupdel
コマンドで削除できます。例えば:
sudo groupdel developers
グループに残っているユーザーには影響しません。ただ、そのグループを参照する可能性がなくなるだけです。
3. 実践課題
本当にプロの管理者のように、グループを作成して設定してみよう!
シナリオ:
designers
グループを作成。- 新しいユーザー2人を作成:
alice
とbob
。 - これらのユーザーを
designers
グループに追加。 - ユーザーが実際にグループに追加されたか確認。
alice
をdesigners
グループから削除。
解決法:
手順 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. 特徴とよくある間違い
グループ作業って、子猫みたいなものです:簡単そうに見えるけど、少し目を離すとカオスに陥ります:
-aG
オプション。-a
をつけ忘れると、新しいグループ以外の全グループからユーザーを間違って削除しちゃいます。システムグループ(例えばsudo
)のメンバーだった場合、これは特に「楽しい」状況になります。変更の適用は再ログイン後に有効。もしユーザーが新しいグループをすぐに見つけられなくても、慌てないでください!システムからログアウトして再ログインする必要があります。そうすることで新しい権限が適用されます。
命名規則に注意。グループ名にはスペースや特殊文字を使わないでください。例えば
awesome@group
のような名前はうまく動作せず、管理者を困らせます。アクセス権を確認。グループを作成して追加しましたか?それはいいですが、ファイルにグループ用の権限がなければ、ユーザーの期待を裏切ることになります。ルールとしてこれを覚えておいてください:権限は検証され、個別に割り当てられるべきです。
実際の利用例
実プロジェクトではグループ管理は以下のように使われます:
- 開発者、テスター、管理者のためにサーバーリソースへのアクセス権を分割する。
- チーム用の共有作業ディレクトリを設定する。
- データベース、設定ファイル、スクリプト、そしてもちろんコーヒーマシンへのアクセスを管理する(まあ、ここはLinuxがまだ役に立たないけどね)。
これでLinuxでのグループの作成と管理方法を知ったので、あなたのシステムをエレガントかつ効率的に管理する準備が整いました。
GO TO FULL VERSION