【Ubuntu】deluserコマンドでユーザを削除する

【Ubuntu】deluserコマンドでユーザを削除する

Ubuntuでユーザ削除をする際はroot権限でdeluserコマンドを実行します。ホームディレクトリの削除やバックアップの設定は/etc/deluser.confから確認できます。

Ubuntuでユーザ削除をする際はroot権限でdeluserコマンドを実行します。

設定ファイル確認

まずdeluserコマンドの設定ファイルを確認します。

cat /etc/deluser.conf

設定例

# /etc/deluser.conf: `deluser' configuration.

# Remove home directory and mail spool when user is removed
REMOVE_HOME = 0

# Remove all files on the system owned by the user to be removed
REMOVE_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 file
BACKUP_TO = "."

# delete a group even there are still users in this group
ONLY_IF_EMPTY = 0

# exclude these filesystem types when searching for files of a user to backup
EXCLUDE_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)を指定した場合、これらのディレクトリを除外できる。

構文(deluser)

deluserコマンドの構文は以下の通りです。

sudo deluser [削除したいユーザ名]

REMOVE_HOMEなどの項目が無効(0)の場合、アカウント情報だけを削除する挙動になります。
設定ファイルが無効のままホームディレクトリ・メールスプールの削除やバックアップをしたい場合は、コマンドにオプションを以下のように指定します。

# ホームディレクトリとメールスプールのデータを削除
sudo deluser --remove-home [削除したいユーザ名]
# ホームディレクトリとメールスプールのデータを削除(バックアップ有)
sudo deluser --remove-home --backup [削除したいユーザ名]
sudo deluser --remove-home --backup-to [バックアップディレクトリ] [削除したいユーザ名]
# ユーザが所有するすべてのデータを削除
sudo deluser --remove-all-files [削除したいユーザ名]
# ユーザが所有するすべてのデータを削除(バックアップ有)
sudo deluser --remove-all-files --backup [削除したいユーザ名]
sudo deluser --remove-all-files --backup-to [バックアップディレクトリ] [削除したいユーザ名]

オプション(deluser)

指定するオプションの意味は以下の通りです。

オプション意味
—remove-homeユーザーのホームディレクトリとメールスプールを削除する。
—remove-all-filesユーザーが所有するすべてのファイルを削除する。
—backup削除する前にファイルをバックアップする。
—backup-toバックアップ先のディレクトリを指定する。

オプションを調べる

他オプションを調べる際は、deluser-helpを指定してください。

deluser -help

ユーザ削除(deluser)

実行コマンド(ユーザ削除)

test-userユーザを削除する場合は、以下のように指定します。

sudo deluser test-user

実行結果例(ユーザ削除)

Removing user `test-user' ...
Warning: group `test-user' has no more members.
Done.

削除前後の確認

削除前(deluser実行前)

deluser実行前に以下の通り、test-userユーザが存在することを確認しました。

# passwdファイル確認
$ cat /etc/passwd | grep test-user
test-user:x:1001:1001:,,,:/home/test-user:/bin/bash

# ホームディレクトリ確認
$ ls -ld /home/test-user
drwxr-x--- 2 test-user test-user 4096 Aug 31 21:23 /home/test-user

# ログイン確認
$ sudo su - test-user
$ whoami
test-user

削除後(deluser実行後)

deluser実行後に以下の通り、test-userユーザが削除されたことを確認しました。

# passwdファイル確認(結果なし)
$ cat /etc/passwd | grep test-user
$

# ホームディレクトリ確認(未削除のためディレクトリあり)
$ ls -ld /home/test-user
drwxr-x--- 2 1001 1001 4096 Aug 31 21:26 /home/test-user

# ログイン確認(不可)
$ sudo su - test-user
su: 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-user
Removing 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 13372
UID          PID    PPID  C STIME TTY      STAT   TIME CMD
test-us+   13372       1  0 21:31 ?        Ss     0:00 /lib/systemd/systemd --user
$ sudo kill 13372
$
$ ps -f 13372
UID          PID    PPID  C STIME TTY      STAT   TIME CMD
$

userdelコマンドとの違い

類似コマンドにuserdelがありますが、違いは以下の通りでdeluserコマンドは設定ファイルで削除やバックアップ等の機能を細かく設定できます。

項目userdeldeluser
ホームディレクトリとメールスプールの削除
ユーザが所有するすべてのファイルを削除×
削除データのバックアップ×

一般的には、Debian/Ubuntu系のシステムではdeluserを使用し、他のディストリビューションではuserdelが使われることが多いです。
userdelコマンドの使い方は、こちらのリンクを参照してください。

まとめ

  • deluserコマンドの設定ファイル:/etc/deluser.confでホームディレクトリ削除やバックアップ有無などを設定できる。
  • 設定ファイル以外にもオプションを指定することも可能。

Ubuntuでユーザを追加する場合は、こちらのリンクを参照してください。

確認した環境

22.04.3 LTS (Jammy Jellyfish)


以上で本記事の解説を終わります。
よいITライフを!
Scroll to Top