## はじめに
useraddとuserdelは、Linuxでユーザーアカウントを作成・削除するための基本コマンドです。新しい開発者の追加、退職者のアカウント削除、サービス専用アカウントの作成など、サーバー管理者が日常的に行う操作です。
なお、Debian/Ubuntu系には対話的に処理してくれる `adduser` / `deluser` というラッパーもありますが、本記事ではディストリビューションに依存しない useradd / userdel を中心に解説します。
## 症状・背景
useradd・userdel が必要になる主な場面:
– 新しい開発者やオペレータにSSHログイン用のアカウントを発行したい
– アプリケーション専用のサービスアカウント(ログインシェルなし)を作成したい
– 退職者のアカウントを削除し、ホームディレクトリも一緒に消したい
– 既存ユーザーのUID/GIDを揃えてNFS共有を整えたい
## 手順・設定方法
### ステップ1: ユーザーの作成(基本)
“`bash
# 最小構成での作成(ホームdirやシェルはディストリ既定)
sudo useradd alice
# 作成と同時にホームディレクトリを作成(-m)
sudo useradd -m alice
# シェルとホームを明示
sudo useradd -m -s /bin/bash -d /home/alice alice
# 作成と同時にパスワードを設定
sudo useradd -m alice
sudo passwd alice
“`
### ステップ2: 主要オプション
“`bash
# UIDを指定(-u)
sudo useradd -m -u 1500 alice
# プライマリグループを指定(-g)
sudo useradd -m -g developers alice
# 補助グループに追加(-G、カンマ区切り)
sudo useradd -m -G sudo,docker,developers alice
# コメント(GECOS)を指定(-c)
sudo useradd -m -c “Alice Smith – DevOps Team” alice
# 有効期限を設定(YYYY-MM-DD)
sudo useradd -m -e 2026-12-31 contractor
# ログイン不可のシステムアカウント
sudo useradd -r -s /usr/sbin/nologin myapp
“`
### ステップ3: 既定値の確認と変更
“`bash
# 現在の既定値を確認
useradd -D
# GROUP=100
# HOME=/home
# SHELL=/bin/sh …
# 既定シェルを変更
sudo useradd -D -s /bin/bash
# /etc/login.defs と /etc/skel も関連設定
# /etc/skel の中身が新規ユーザーのホームdirにコピーされる
sudo ls -la /etc/skel/
“`
### ステップ4: ユーザーの削除
“`bash
# ユーザーのみ削除(ホームdirは残す)
sudo userdel alice
# ホームディレクトリとメールスプールも削除(-r)
sudo userdel -r alice
# 該当ユーザーが実行中のプロセスを止めてから削除(-f は強制)
sudo userdel -rf alice
# 削除前の確認
id alice # UID/グループ確認
sudo find / -user alice 2>/dev/null # 残ファイル検索
# 削除後の確認
getent passwd alice # 何も返らなければ削除成功
“`
## 注意事項
– `userdel -r` は本当にホームディレクトリを消すため、必ず事前バックアップを取る
– 削除前にそのユーザー名義のcron、systemdユニット、SSH鍵がないか確認
– システム用アカウントは UID < 1000 にし、`-r` オプションで作成するのが慣例
- /etc/passwd, /etc/shadow, /etc/group の整合性は `pwck` / `grpck` で検証できる
- 大規模環境ではLDAP/SSSDなど中央認証を使うので useradd を直接打たない場合もある
## まとめ
1. **作成**: `useradd -m -s /bin/bash user` でホーム付きで作成し、`passwd` で初期パス設定
2. **オプション**: `-u` UID指定、`-g/-G` グループ指定、`-c` コメント、`-e` 有効期限
3. **サービス用**: `useradd -r -s /usr/sbin/nologin` でログイン不可システムアカウント
4. **削除**: `userdel -r` でホーム含めて削除(必ずバックアップ)
5. **既定値**: `/etc/skel`・`/etc/login.defs`・`useradd -D` で挙動を制御
関連記事:
- [passwdコマンドでパスワードを変更する方法](../linux-passwd-command/)
- [groupadd・usermodでグループ管理する方法](../linux-group-management/)
- [sudoの設定とsudoersファイルの編集方法](../linux-sudo-sudoers-setup/)







