更新履歴
- WinMergeをインストール不要で使う!ポータブル版の導入手順とメリットを解説
- 【完全ガイド】WinMergeでバイナリ比較をする方法
- SwaggerとOpenAPIの違いを徹底解説!仕様とツールの関係性を理解する
- 【Python】ファイル存在チェックの実装方法(pathlib、os.path)
- Pythonで文字列を除去する方法を完全解説!strip・replace・正規表現
- スタック領域とヒープ領域の違いとは?メモリ管理から使い分けまで徹底解説
- Python Docstringの書き方完全ガイド|主要スタイルの比較と保守性を高める記述
- シングルトン(Singleton)デザインパターンを徹底解説!Java実装例・メリット・デメリット
- サインインとログインの違いとは?意味・使い分けをわかりやすく解説
- 静的サイトと動的サイトの違いを徹底比較!メリット・デメリットと選び方を解説
- モノリスとマイクロサービスの違いを徹底比較|メリット・デメリットと失敗しない選定基準
- RESTとSOAPの違いを徹底比較!特徴・メリット・使い分けを解説
- 同期・非同期とブロッキング・ノンブロッキングの違い|概念と使い分けを徹底比較
- マルチプロセスとマルチスレッドの違いを解説!メリット・デメリット・使い分け
- hostsファイルとDNSの違いとは?優先順位・仕組み・使い分けを解説
- Excelで複数行を1行にまとめる方法まとめ【関数・PQ対応】
- レスポンスタイムとターンアラウンドタイムの違い【基本情報対策】
- ステートレスとステートフルの違いを徹底解説!エンジニアが知るべき仕組みと具体例
- shとbashの違いを徹底解説!シェルスクリプトの使い分け
- 【徹底比較】イーサネットとWi-Fi違いと選び方を解説
お役立ちツール
Ubuntuユーザにお勧めの本
Ubuntuでユーザーを削除する際、deluserコマンドを使用します。しかし、単にユーザーアカウントを削除するだけでなく、ホームディレクトリやメールスプールの扱い、バックアップの有無など、考慮すべき点が多くあります。
この記事では、deluserコマンドの基本的な使い方から、設定ファイル(/etc/deluser.conf)の詳細、各種オプション、エラー対処法、さらにuserdelとの違いまで、実例を交えて解説します。
この記事で分かること:
- deluserコマンドの基本構文とオプション
- /etc/deluser.confの設定項目と意味
- ホームディレクトリ削除とバックアップの方法
- よくあるエラーと対処法
- userdelコマンドとの違い
確認した環境
Ubuntu 22.04.3 LTS (Jammy Jellyfish)
deluserの設定ファイル(/etc/deluser.conf)を確認する
結論: deluserコマンドの動作は/etc/deluser.confで制御されており、ホームディレクトリの削除やバックアップの有無を事前に設定できます。
理由: コマンド実行時のオプション指定を省略できるため、運用ルールに応じた設定をしておくことで作業効率が向上します。
具体例: 以下のコマンドで設定ファイルを確認します。
cat /etc/deluser.confdeluser.confの設定例
# /etc/deluser.conf: `deluser' configuration.
# Remove home directory and mail spool when user is removedREMOVE_HOME = 0
# Remove all files on the system owned by the user to be removedREMOVE_ALL_FILES = 0
# Backup files before removing them. This options has only an effect if# REMOVE_HOME or REMOVE_ALL_FILES is set.BACKUP = 0
# target directory for the backup fileBACKUP_TO = "."
# delete a group even there are still users in this groupONLY_IF_EMPTY = 0
# exclude these filesystem types when searching for files of a user to backupEXCLUDE_FSTYPES = "(proc|sysfs|usbfs|devpts|tmpfs|afs)"各設定項目の意味は以下の通りです。
| 項目 | 説明 | 設定例 |
|---|---|---|
| REMOVE_HOME | ユーザー削除時にホームディレクトリとメールスプールを削除する。 | 0:無効,1:有効 |
| REMOVE_ALL_FILES | 削除するユーザーが所有するシステム上のすべてのファイルを削除する。 | 0:無効,1:有効 |
| BACKUP | 削除する前にファイルをバックアップする。 このオプションは、REMOVE_HOMEまたはREMOVE_ALL_FILESが 設定されている場合にのみ有効です。 | 0:無効,1:有効 |
| BACKUP_TO | バックアップファイルのターゲットディレクトリ。 | 「.」の場合はコマンドを実行したカレントディレクトリ |
| ONLY_IF_EMPTY | グループに所属するユーザーがいない場合グループを削除する。 | 0:無効,1:有効 |
| EXCLUDE_FSTYPES | バックアップするユーザーのファイルを検索する際、 これらのファイルシステムタイプを除外する。 | (proc|sysfs|usbfs|devpts|tmpfs|afs)を指定した場合、これらのディレクトリを除外できる。 |
まとめ: 設定ファイルを確認し、必要に応じてREMOVE_HOMEやBACKUPの値を変更することで、ユーザー削除時の動作をカスタマイズできます。
deluserコマンドの基本構文とオプション
deluserコマンドの構文は以下の通りです。
sudo deluser [削除したいユーザ名]REMOVE_HOMEなどの項目が無効(0)の場合、アカウント情報だけを削除する挙動になります。
設定ファイルが無効のままホームディレクトリ・メールスプールの削除やバックアップをしたい場合は、コマンドにオプションを以下のように指定します。
deluserでホームディレクトリとメールスプールを削除する方法
sudo deluser --remove-home [削除したいユーザ名]deluser実行時にバックアップを取得してホームディレクトリを削除
sudo deluser --remove-home --backup [削除したいユーザ名]バックアップディレクトリを指定する場合は、--backup-toを指定します。
sudo deluser --remove-home --backup-to [バックアップディレクトリ] [削除したいユーザ名]\ITエンジニアにお勧めの一冊/
ユーザーが所有するすべてのファイルを削除する方法
sudo deluser --remove-all-files [削除したいユーザ名]バックアップ付きですべてのユーザーファイルを削除
sudo deluser --remove-all-files --backup [削除したいユーザ名]バックアップディレクトリを指定する場合は、--backup-toを指定します。
sudo deluser --remove-all-files --backup-to [バックアップディレクトリ] [削除したいユーザ名]オプション(deluser)
指定するオプションの意味は以下の通りです。
| オプション | 意味 |
|---|---|
| —remove-home | ユーザーのホームディレクトリとメールスプールを削除する。 |
| —remove-all-files | ユーザーが所有するすべてのファイルを削除する。 |
| —backup | 削除する前にファイルをバックアップする。 |
| —backup-to | バックアップ先のディレクトリを指定する。 |
deluserの全オプションを確認する方法
他オプションを調べる際は、deluserに-helpを指定してください。
deluser -helpdeluserコマンドでユーザーを削除する手順
deluserコマンドの実行例
test-userユーザを削除する場合は、以下のように指定します。
sudo deluser test-userユーザー削除の実行結果
Removing user `test-user' ...Warning: group `test-user' has no more members.Done.ユーザー削除前後の確認方法
ユーザー削除前の確認コマンド
deluser実行前に以下の通り、test-userユーザが存在することを確認しました。
# passwdファイル確認$ cat /etc/passwd | grep test-usertest-user:x:1001:1001:,,,:/home/test-user:/bin/bash
# ホームディレクトリ確認$ ls -ld /home/test-userdrwxr-x--- 2 test-user test-user 4096 Aug 31 21:23 /home/test-user
# ログイン確認$ sudo su - test-user$ whoamitest-userdeluser実行後の確認方法
deluser実行後に以下の通り、test-userユーザが削除されたことを確認しました。
# passwdファイル確認(結果なし)$ cat /etc/passwd | grep test-user$
# ホームディレクトリ確認(未削除のためディレクトリあり)$ ls -ld /home/test-userdrwxr-x--- 2 1001 1001 4096 Aug 31 21:26 /home/test-user
# ログイン確認(不可)$ sudo su - test-usersu: user test-user does not exist or the user entry does not contain all the required fields「user test-user is currently used by process XXXX」となった場合
削除対象ユーザのプロセスが使われていると削除できません。
TeraTerm等で該当ユーザを操作している場合はログアウトしてから再度コマンドを試してください。
$ sudo deluser test-userRemoving user `test-user' ...Warning: group `test-user' has no more members.userdel: user test-user is currently used by process 13372/usr/sbin/deluser: `/sbin/userdel test-user' returned error code 8. Exiting.以下のように該当プロセスを確認し、問題なければkillしてから再実行する方法もあります。
$ ps -f 13372UID PID PPID C STIME TTY STAT TIME CMDtest-us+ 13372 1 0 21:31 ? Ss 0:00 /lib/systemd/systemd --user$ sudo kill 13372$$ ps -f 13372UID PID PPID C STIME TTY STAT TIME CMD$deluserとuserdelの違いを比較
類似コマンドにuserdelがありますが、違いは以下の通りでdeluserコマンドは設定ファイルで削除やバックアップ等の機能を細かく設定できます。
| 項目 | userdel | deluser |
|---|---|---|
| ホームディレクトリとメールスプールの削除 | 〇 | 〇 |
| ユーザが所有するすべてのファイルを削除 | × | 〇 |
| 削除データのバックアップ | × | 〇 |
一般的には、Debian/Ubuntu系のシステムではdeluserを使用し、他のディストリビューションではuserdelが使われることが多いです。
関連記事: より汎用的なuserdelコマンドの使い方も合わせてご覧ください。Ubuntuでユーザーを追加する方法については、adduserコマンドの使い方で詳しく解説しています。
deluserコマンドのまとめ
この記事では、Ubuntuのdeluserコマンドを使ったユーザー削除方法について解説しました。
重要なポイント:
- 設定ファイル:
/etc/deluser.confでホームディレクトリ削除やバックアップ有無を設定可能 - 基本構文:
sudo deluser [ユーザー名]でアカウント情報のみ削除 - オプション:
--remove-home、--backupなどで柔軟な削除が可能 - エラー対処: プロセスが使用中の場合はログアウトまたはkillが必要
- userdelとの違い: deluserはバックアップ機能など、より高機能
次のステップ:
- ユーザーを追加する場合: adduserコマンドの使い方
- 他のディストリビューションでの削除: userdelコマンドの使い方
システム管理において、ユーザーの適切な削除は重要なセキュリティ対策の一つです。この記事を参考に、安全にユーザー削除を行ってください。
Ubuntuユーザにお勧めの本
以上で本記事の解説を終わります。
よいITライフを!
