
Linuxコマンドリファレンス
ユーザー管理
ユーザー管理は、Linux のセキュリティと運用の基礎です。ユーザーとグループ、認証(パスワード)、権限委任(sudo)を正しく設計・運用することで、最小権限の原則を実現し、事故や不正操作を防げます。ここでは日常運用で頻出するコマンドを中心に、目的別に整理します。
よく使う設定ファイル
| ファイル | 役割 |
|---|
| /etc/passwd | ユーザーの基本情報(UID, GID, シェル, ホーム) |
| /etc/shadow | パスワードハッシュと期限情報(一般ユーザーは不可読) |
| /etc/group | グループ定義と所属ユーザー |
| /etc/gshadow | グループの機密情報 |
| /etc/sudoers, /etc/sudoers.d/ | sudo の権限委任設定(編集は visudo 推奨) |
| /etc/login.defs | useradd などのデフォルト値 |
| /etc/skel/ | 新規ユーザー作成時にホームへ配布する初期ファイル |
基本コマンド一覧(ユーザー・グループ操作)
| コマンド | 説明 |
|---|
| id [ユーザー名] | UID/GID と所属グループを表示 |
| whoami | 現在の実効ユーザー名を表示 |
| groups [ユーザー名] | 所属グループを表示 |
| getent passwd ユーザー名 | NSS を経由してユーザー情報を取得(LDAP 等にも対応) |
| getent group グループ名 | NSS を経由してグループ情報を取得 |
アカウント作成・削除・変更
| コマンド | 説明 |
|---|
| useradd ユーザー名 | 新規ユーザーを作成(/etc/login.defs の規定に従う) |
| useradd -m -c コメント -s /bin/bash -G wheel ユーザー名 | ホーム作成・説明・デフォルトシェル・補助グループを指定して作成(RHEL系は wheel、Debian系は sudo が管理者グループの例) |
| passwd | 自分のパスワードを変更 |
| passwd ユーザー名 | 指定ユーザーのパスワードを設定/変更 |
| passwd -e ユーザー名 | 次回ログイン時にパスワード変更を強制(expire) |
| usermod -aG グループ ユーザー名 | 補助グループへ追加(-G と併用時は -a を忘れない) |
| usermod -L ユーザー名 | アカウントをロック(ログイン不可) |
| usermod -U ユーザー名 | アカウントロックを解除 |
| chsh -s シェル [ユーザー名] | ログインシェルを変更(自分は非特権で可、他人は #) |
| chfn [ユーザー名] | コメント(フルネーム等)を変更(ポリシーにより制限あり) |
| userdel ユーザー名 | ユーザーを削除(ホームは残る) |
| userdel -r ユーザー名 | ユーザーをホームごと削除(慎重に) |
グループ作成・削除・管理
| コマンド | 説明 |
|---|
| groupadd グループ名 | 新規グループを作成 |
| groupdel グループ名 | グループを削除 |
| groupmod -n 新名 旧名 | グループ名を変更 |
| gpasswd -a ユーザー グループ | ユーザーをグループに追加 |
| gpasswd -d ユーザー グループ | ユーザーをグループから削除 |
| newgrp グループ名 | 一時的に主グループを切り替え(新規作成ファイルの GID に影響) |
パスワード・有効期限ポリシー
| コマンド | 説明 |
|---|
| chage -l ユーザー名 | パスワード期限・警告猶予などを確認 |
| chage -M 90 -W 14 -I 7 ユーザー名 | 最大利用日90日・期限14日前警告・猶予7日を設定 |
| chage -E YYYY-MM-DD ユーザー名 | アカウント有効期限日を設定 |
| passwd -l ユーザー名 | パスワードログインを無効化(パスワードをロック) |
| passwd -u ユーザー名 | パスワードロック解除 |
権限委任(sudo)と安全な編集
| コマンド | 説明 |
|---|
| sudo コマンド | 一時的に権限昇格してコマンドを実行(監査ログが残る) |
| sudo -l | 自分に許可された sudo 権限を確認 |
| visudo | /etc/sudoers を安全に編集(文法チェック付き) |
| vipw, vigr | passwd/group をロック付きで安全に編集 |
| pwck, grpck | passwd/group の整合性チェック |
ログイン状況の確認
| コマンド | 説明 |
|---|
| who | ログイン中のユーザー一覧 |
| w | ログイン中ユーザーと負荷の概要 |
| last | 最近のログイン履歴(/var/log/wtmp) |
| lastlog | 直近ログインの概要 |
目的別レシピ(実務でそのまま使える最小セット)
| 目的 | 例 |
|---|
| 一般ユーザーを作成し、管理グループに追加(RHEL系の例) | useradd -m -c "Taro Yamada" -s /bin/bash -G wheel taro → passwd taro |
| パスワードポリシーを設定 | chage -M 90 -W 14 -I 7 taro |
| 既存ユーザーを管理グループに追加 | usermod -aG wheel taro |
| アカウントを一時停止/再開 | usermod -L taro / usermod -U taro |
| 不要ユーザーを完全削除 | userdel -r taro |
| 所属グループの確認 | id taro / groups taro |
| sudoers にグループを許可 | visudo で %wheel ALL=(ALL) ALL を有効化(Debian/Ubuntu は %sudo を使うことが多い) |
運用上のヒントと注意点
- 追加グループ付与は usermod -aG(-a を忘れると補助グループが上書きされる)。
- 管理者権限は su ではなく sudo を基本に。権限の粒度調整と監査ログが利点。
- 削除は userdel -r の前に業務データの所在を確認(共有領域の所有者変更など)。
- 新規作成の既定値は /etc/login.defs と /etc/skel を整えると運用が安定。
- パスワード失効や有効期限は chage で一元管理し、定期的に chage -l で点検。