【Linux】userdelコマンドでユーザを削除する

【Linux】userdelコマンドでユーザを削除する

Linuxでユーザ削除をする際はroot権限でuserdelコマンドを実行します。ホーム・ディレクトリとメールスプールを含めて削除する場合は、-rオプションを指定します。

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

構文

構文は以下の通りです。

sudo userdel -r [削除したいユーザ名]

オプション

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

オプション意味
-rホーム・ディレクトリとメールスプールを削除する

ホームディレクトリ・メールスプールを残してアカウントのみ削除する場合は、-rオプションの指定は不要です。

オプションを調べる

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

userdel -help

ユーザ削除

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

ホームディレクトリ含めてtest-userを削除する場合は、以下のように指定します。

sudo userdel -r test-user

メールスプールがなければ、以下のようなログが表示されますが、問題ありません。

$ sudo userdel -r test-user
userdel: test-user mail spool (/var/mail/test-user) not found

削除前後の確認

削除前(userdel実行前)

userdel実行前に以下の通り、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 30 21:08 /home/test-user

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

削除後(userdel実行後)

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

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

# ホームディレクトリ確認(ディレクトリなし)
$ ls -ld /home/test-user
ls: cannot access '/home/test-user': No such file or directory

# ログイン確認(不可)
$ 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 userdel -r test-user
userdel: user test-user is currently used by process 9598

以下のように該当プロセスを確認し、問題なければkillしてから再実行する方法もあります。

$ ps -f 9598
UID          PID    PPID  C STIME TTY      STAT   TIME CMD
test-us+    9598       1  0 21:26 ?        Ss     0:00 /lib/systemd/systemd --user
$ sudo kill 9598
$
$ ps -f 9598
UID          PID    PPID  C STIME TTY      STAT   TIME CMD
$

deluserコマンドとの違い

deluserコマンドは、userdelの機能をラップするスクリプトであり、追加のオプションや機能が利用できます。
ユーザーが所有するファイルの削除やバックアップなど、設定ファイルを使って挙動をカスタマイズできます。

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

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

まとめ

  • userdelコマンドでアカウント情報のみ削除する場合は、オプションを指定しない
  • userdelコマンドでホームディレクトリ・メールスプールのデータも削除する場合は、-rオプションを指定する

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


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