概要
Debian系ディストリビューション(Ubuntu, Debianなど)において、ユーザーアカウントの削除、またはユーザーを特定のグループから除外するためのコマンドです。
userdel コマンドのラッパー(フロントエンド)であり、ホームディレクトリのバックアップ作成や削除など、より安全で柔軟なオプションが提供されています。管理者は複雑な手順を踏まずにアカウントの後始末を行うことができます。
仕様(引数・オプション)
構文
# ユーザー自体をシステムから削除
deluser [オプション] [ユーザー名]
# ユーザーを特定のグループから削除(脱退)
deluser [オプション] [ユーザー名] [グループ名]
主なオプション
| オプション | 説明 |
| –remove-home | ユーザーのホームディレクトリとメールスプールを削除します。 |
| –remove-all-files | システム上のすべてのファイルシステムから、そのユーザーが所有するファイルを検索して削除します。 |
| –backup | 削除する前に、ホームディレクトリなどのバックアップファイル(tar.gz)を作成します。 |
| –backup-to [DIR] | バックアップの保存先ディレクトリを指定します(デフォルトはカレントディレクトリ)。 |
| –group | 指定したグループを削除します(ユーザーではなくグループ自体の削除)。 |
| –conf [FILE] | デフォルト以外の設定ファイル(deluser.conf)を指定して使用します。 |
| –system | システムユーザー(UIDが低いユーザー)の場合に削除を許可します。 |
基本の使い方
オプションを指定せずにユーザー(ここでは k_sato)を削除します。
この場合、アカウント情報のみが削除され、ホームディレクトリやデータファイルはそのまま残ります。
# 削除前の確認
id k_sato
ls -d /home/k_sato
# ユーザー削除を実行(ファイルは残る)
sudo deluser k_sato
実行結果例
Removing user `k_sato' ...
Warning: group `k_sato' has no more members.
Done.
※コマンド実行後も /home/k_sato は存在し続けます。
実践コマンド
ホームディレクトリごと削除する
退職者のPCなど、データも含めて完全にアカウントを消去する場合に使用します。
# ホームディレクトリとメールボックスを含めて削除
sudo deluser --remove-home temp_staff
バックアップを取ってから削除する
念のためデータをアーカイブとして残しつつ、アカウントを削除します。データは ユーザー名.tar.gz などの形式で保存されます。
# バックアップを作成し、ホームディレクトリごと削除
sudo deluser --remove-home --backup project_member
# バックアップファイルの確認
ls *.tar.gz
実行結果例
Backing up /home/project_member to project_member.tar.gz ...
Removing user `project_member' ...
Done.
カスタムポイント
- システム上の全ファイルを削除 (–remove-all-files)ホームディレクトリだけでなく、/tmp や /var などシステム全体に散らばったそのユーザーの所有ファイルをすべて検索して削除します。Bash
sudo deluser --remove-all-files malicious_user※ディスク全体を走査するため処理に時間がかかります。 - 設定ファイルによるデフォルト変更/etc/deluser.conf を編集することで、「常にホームディレクトリを削除する」「常にバックアップを取る」といった挙動をデフォルトに設定できます。
注意点
- Red Hat系では使用不可deluser はDebian/Ubuntu系のコマンドです。CentOSやRHELでは userdel コマンドを使用してください。
- ユーザーグループからの脱退機能deluser ユーザー グループ の構文は「ユーザー自体を消す」のではなく「グループから抜ける」動作になります。引数の数によって挙動が大きく変わるため、誤操作に注意してください。
- プロセスの強制終了はしない削除対象のユーザーがログイン中やプロセス実行中の場合、deluser は警告を出して停止することがあります。事前に kill コマンドなどでプロセスを終了させておく必要があります。
応用
ユーザーを特定のグループから除外(脱退)させる
アカウントは削除せず、権限グループ(例: sudo や docker)からだけ外したい場合に使用します。
# ユーザー 'developer' を 'sudo' グループから除外
sudo deluser developer sudo
実行結果例
Removing user `developer' from group `sudo' ...
Done.
これで developer ユーザーは sudo 権限を失いますが、アカウント自体は残ります。
まとめ
deluser は、userdel よりも安全かつ高機能にアカウント管理を行えるコマンドです。
「データを残すのか、消すのか」「バックアップは必要か」という要件に合わせてオプションを使い分けることで、システム上のゴミファイルを残さずに綺麗なユーザー管理を実現できます。特に –remove-home と –backup の組み合わせは実務での利用頻度が高いため、セットで記憶しておくと役立ちます。
