Instiq
第3章 · システム管理·v1.0.0·更新 2026/7/6·読了目安 約13分

変更要約: 初版(主題1.08・副主題1.08.1〜1.08.3に対応)

3.1アカウント管理

この節の要点

ユーザーとグループの管理を学びます。useradduserdelusermodgroupaddgroupdelgroupmod、既定値(/etc/default/useradd)と雛形(/etc/skel/)、アカウント情報のデータベース(/etc/passwd/etc/shadow/etc/group)、passwd によるパスワード管理、確認用の getentid を押さえます。

入社・異動・退職のたびに発生するアカウント管理は、システム管理者の最頻業務のひとつです(本主題の中でも重要度5)。コマンドの使い分けと、裏側の3つのデータベースファイルの役割を押さえれば得点源になります。

3.1.1ユーザー・グループ操作コマンド

  • useradd=ユーザー作成(useradd -m user01=ホームディレクトリも作成)。既定値は /etc/default/useradd(既定シェル等)と /etc/login.defs、新規ホームの雛形は /etc/skel/(ここに置いたファイルが新ユーザーのホームへコピーされる)。
  • usermod=変更(-aG dev user01-a を付けてグループ追加・-L/-U=ロック/解除・-s=シェル変更)。userdel=削除(-r でホームごと)。
  • グループ=groupaddgroupmod(名前/GID 変更)・groupdel
  • passwd=パスワード設定(root は他ユーザーのも変更可)。確認系=id(UID/GID/所属グループ)・getentgetent passwd user01NSS 経由でアカウント情報を引く=LDAP 等の外部ソースも含む)。

3.1.2アカウント情報の3ファイル

  • /etc/passwd=ユーザーの基本情報(名前:x:UID:GID:コメント:ホーム:シェル)。全ユーザーが読めるため、パスワード本体は置かない(x はシャドウ参照の印)。
  • /etc/shadowハッシュ化パスワードとエージング情報(最終変更日・有効期限等)。root のみ読める
  • /etc/group=グループ名:x:GID:メンバー一覧。複数グループ所属はここのメンバー欄(+ユーザーのプライマリグループは passwd 側の GID)。
試験ポイント

「パスワードの実体は /etc/shadow(root のみ可読)・/etc/passwd の x は参照印」「新規ホームの雛形=/etc/skel/」「グループ追加は usermod -aG(-a を忘れると既存グループから外れる)」 の3点が最頻出です。userdel -r(ホームごと削除)と素の userdel の違いも定番です。

新入社員の受け入れを一連で流すと全部つながります。useradd -m -s /bin/bash tanaka でユーザーとホームを作成——このとき /etc/skel/ の内容(.bashrc の雛形など全社共通の初期設定)が新しいホームへコピーされます。passwd tanaka で初期パスワードを設定し、usermod -aG dev,docker tanaka でプロジェクトのグループへ追加します。ここで -a(append)を忘れて -G dev とだけ書くと、所属グループが dev だけに置き換わる——これが本副主題いちばんの実務事故ポイントです。設定の確認は id tanaka(uid/gid/groups が一目でわかる)と getent passwd tanaka で行います。getent を使う理由は、大規模環境ではアカウントが LDAP など外部ディレクトリにあることがあり、/etc/passwd を cat しても見えないからです(NSS 経由の getent なら統合結果が見える)。退職時は usermod -L でまずロック(即時の無効化・データは保全)→ 手続き完了後に userdel -r で削除、という2段階が安全な運用です。

ファイル中身読み取り権
/etc/passwdUID/GID・ホーム・シェル全ユーザー可読
/etc/shadowパスワードハッシュ・エージングroot のみ
/etc/groupグループとメンバー全ユーザー可読
/etc/skel/新規ホームの雛形useradd -m 時にコピー
注意

ひっかけ: 「ユーザーのパスワードは /etc/passwd に暗号化されて保存される」は誤りです(歴史的には真だったが、現在は /etc/shadow に分離)。また「usermod -G dev で dev グループに追加される」も要注意=既存の所属がすべて dev に置き換わるため、追加は必ず -aG です。「/etc/skel はロックされたアカウントの退避先」のような役割の捏造にも注意(skel は新規ホームの雛形)。

ユーザー操作コマンド・passwd/shadow/group・skel と確認コマンドの図。
-aG の a を忘れると置換事故

3.1.3この節のまとめ

  • 操作=useradd(-m)/usermod(-aG・-L/-U)/userdel(-r)・group{add,mod,del}・passwd。確認は id・getent
  • passwd=基本情報(可読)・shadow=ハッシュ(root のみ)・group=所属。雛形は /etc/skel/・既定は /etc/default/useradd

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 既存ユーザー tanaka を、現在の所属グループを維持したまま docker グループに追加したい。適切なコマンドは?

Q2. ハッシュ化されたパスワードとパスワードの有効期限情報が保存されている、root のみが読めるファイルはどれ?

Q3. 全新規ユーザーのホームディレクトリに、会社標準の設定ファイル一式を自動配布したい。ファイルを置くべき場所は?

理解度を確認第3章「システム管理」の問題を解く