こんにちは!Linuxという素晴らしいOSを扱う上で、最初に直面する課題の一つが「ユーザー管理」です。なぜユーザーごとにアカウントを分け、なぜ複雑にグループを分けるのでしょうか?🤔
その理由は、まさにセキュリティと権限管理のためです。各々に必要な権限のみを付与し、作業履歴を明確に追跡することで、システムをより安定かつ安全に運用することができます。今日は、Linuxのユーザーおよびグループ管理のすべてをAからZまで、分かりやすく明確にお伝えします!

1. 新しいユーザーを招待する (useradd, adduser)
システムに新しいユーザーを追加するコマンドは、大きく分けて2つあります。
- useradd: 基本的なローレベルユーティリティ。オプションを通じてすべての設定を1行で指定できるため、スクリプトで頻繁に使用されます。
- adduser: useraddをベースに作られたユーザーフレンドリーなスクリプト。対話形式で進行するため、初心者にも使いやすいです。
ここでは、強力なオプションを持つuseraddを中心に見ていきましょう。
# 'harry'というユーザーを作成し、デフォルトシェルをzsh、補助グループをsudoに指定する例
sudo useradd -m -s /bin/zsh -G sudo harry
- -m: ユーザーのホームディレクトリを作成します。(通常 /home/username)
- -s: ユーザーがログインする際に使用するデフォルトのシェルを指定します。(例: /bin/bash, /bin/zsh)
- -g: ユーザーの主(Primary)グループを指定します。(詳細は下記で説明!)
- -G: ユーザーが所属する補助(Secondary)グループをカンマ区切りで指定します。
2. ユーザーのパスワード設定 (passwd, chpasswd)
ユーザーを作成したら、パスワードを設定する必要がありますよね?
- passwd [ユーザー名]: 最も一般的な方法。管理者が他のユーザーのパスワードを設定する際に使用します。
`
sudo passwd harry
`
- chpasswd: スクリプトでパスワードを設定する際に非常に便利なコマンドです。
`
‘harry’ユーザーのパスワードを’supersecret’に設定
echo ‘harry:supersecret’ | sudo chpasswd
`
3. グループの概念:主グループ vs 補助グループ (最も重要!)
Linuxにおいて、グループは権限管理の核です。ユーザーは必ず一つの「主グループ」に属し、さらに複数の「補助グループ」に追加で属することができます。
🏢 主グループ (Primary Group)
- ユーザーが所属する「メイン部署」のようなものです。
- ユーザーがファイルを作成すると、そのファイルはデフォルトでこの主グループの所有となります。
- ユーザー作成時に指定しない場合、通常はユーザー名と同じ名前のグループが主グループとして自動作成されます。
🤝 補助グループ (Secondary Groups)
- ユーザーが参加する extit{ extit}「プロジェクトチーム」または「サークル」 extit{ extit}のようなものです。
- ユーザーに特定のファイルやディレクトリへの追加的なアクセス権限を付与する際に使用されます。
- 最も代表的な例がsudoやwheelグループです。このグループに属するユーザーは、一時的に管理者権限を得ることができます!
ユーザーのグループ情報は、idコマンドで一目で把握できます。
id harry
# uid=1001(harry) gid=1001(harry) groups=1001(harry),27(sudo)
# ▲ 主グループ(gid) ▲ 補助グループ(groups)
4. 既存ユーザー情報の変更 (usermod)
すでに作成されたユーザーの情報を変更したい場合は、usermod (User Modify) コマンドを使用します。
主グループの変更
harryのメイン部署をsalesチームに移してみましょう。
# harryの主グループをsalesに変更
sudo usermod -g sales harry
- -g: 主グループを変更するオプションです。
補助グループへの追加 (⚠️ 注意!)
harryをdevelopersプロジェクトチームにも参加させてみましょう。
# harryをdevelopersグループに「追加」
sudo usermod -aG developers harry
- -aG: ユーザーを新しい補助グループに extit{ extit}追加(Append) extit{ extit}します。ここで-aオプションが非常に重要です!
- もし-aなしでusermod -G developers harryとだけ入力すると、既存のすべての補助グループ(sudoなど)から脱退し、developersグループのみに属することになるので、十分に注意してください。
5. グループ自体を管理するコマンド
- groupadd [グループ名]: 新しいグループを作成します。(例: sudo groupadd sales)
- groupdel [グループ名]: 既存のグループを削除します。
結論:権限管理の始まりと終わり
useradd、passwd、usermod、idの4つのコマンドと「主グループ/補助グループ」の概念をしっかりと理解していれば、Linuxの権限管理の半分はマスターしたも同然です。
ユーザーとグループを体系的に管理する習慣は、システムのセキュリティを強化し、予期せぬミスを防ぐ最も基本的な第一歩です。今日学んだ内容で、皆さんのサーバーをより堅牢にしてください!🚀
タグ:
Linux, ユーザー管理, グループ管理, useradd, usermod, passwd, chpasswd, sudo, Linux基礎, システム管理
コメントを残す