このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】ユーザーの削除:userdelコマンド

userdelコマンドの概要

 「userdel」コマンドは、Linuxシステムからユーザーアカウントを削除するためのコマンドです。このコマンドを使用すると、指定したユーザーのアカウントがシステムから削除されます。ただし、デフォルトではユーザーのホームディレクトリやファイルは削除されません。必要に応じて、ホームディレクトリやメールスプールを含むユーザーのファイルも削除するオプションを指定します。

主なオプションと説明

オプション説明
-rユーザーのホームディレクトリおよびメールスプールを含む、ユーザーのファイルを削除します。
--forceログインしているユーザーを強制的に削除します。また、NFSマウントされたホームディレクトリも削除します。
主なオプションと説明

コマンドの使用例と解説

1.ユーザーの作成

まず、はじめに削除に使用するユーザーを作成しておきます。

su -」コマンドを使って、rootユーザーに切り替えます。

・「su -」コマンドを実行します。

 現在のユーザーからrootユーザーに完全に切り替え、rootユーザーのログインシェルと環境変数を読み込みます。これにより、rootユーザーとしてログインした場合と同じ環境が提供されます。

user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~# 

以下のコマンドを実行してユーザーアカウントを3つ作成します。

  • adduser ito」コマンドを実行します。
  • adduser watanabe」コマンドを実行します。
  • adduser hashimoto」コマンドを実行します。

パスワードは、すべて「password」を設定します。

root@ubuntu-vm:~# adduser ito
ユーザー `ito' を追加しています...
新しいグループ `ito' (1004) を追加しています...
新しいユーザー `ito' (1004) をグループ `ito' に追加しています...
ホームディレクトリ `/home/ito' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しい パスワード: 
正しくないパスワード: このパスワードは辞書チェックに失敗しました - 辞書の単語に基づいています
新しい パスワードを再入力してください: 
passwd: パスワードは正しく更新されました
ito のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
	フルネーム []: 
	部屋番号 []: 
	職場電話番号 []: 
	自宅電話番号 []: 
	その他 []: 
以上で正しいですか? [Y/n] y
root@ubuntu-vm:~# adduser watanabe
(省略)
root@ubuntu-vm:~# adduser hashimoto
(省略)

2.ユーザーアカウントを削除する(ファイルは残す)。

「/home」ディレクトリの中身を確認します。

・「ls /home」コマンドを実行します。

 先ほど、作成したユーザーアカウントのホームディレクトリ「ito」「watanabe」「hashimoto」があることが確認できます。

root@ubuntu-vm:~# ls /home
hashimoto  ito  suzuki  tanaka  user01  watanabe

「ito」ユーザーを削除します。

・「userdel ito」コマンドを実行します。

 「ito」ユーザーのアカウントを削除しますが、ホームディレクトリやその他のファイルは削除されません。この方法では、ユーザーが所有していたファイルはそのまま残ります。

root@ubuntu-vm:~# userdel ito

ユーザーアカウントのホームディレクトリを確認します。

・「ls /home」コマンドを実行します。

「ito」ディレクトリが、まだあることが確認できます。

root@ubuntu-vm:~# ls /home
hashimoto  ito  suzuki  tanaka  user01  watanabe

「ito」ユーザーが所有する「/home/ito」ディレクトリを手動で削除します。

・「rm -r /home/ito」コマンドを実行します。

root@ubuntu-vm:~# rm -r /home/ito

3.ユーザーアカウントとホームディレクトリを削除する。

 以下のコマンドを実行して「watanabe」ユーザーを削除して、「watanabe」ユーザーのホームディレクトリを確認します。

  • userdel -r watanabe」コマンドを実行します。
  • ls /home」コマンドを実行します。

 「-r」オプションを指定することで、「ito」ユーザーのアカウントとホームディレクトリ、メールスプールが削除されます。この方法では、ユーザーが所有していたすべてのファイルが削除されます。

root@ubuntu-vm:~# userdel -r watanabe
userdel: watanabe のメールスプール (/var/mail/watanabe) がありません
root@ubuntu-vm:~# ls /home
hashimoto  suzuki  tanaka  user01

4.ログイン中のユーザーを強制的に削除する。

「hashimoto」ユーザーでログインします。

・ターミナル(端末)をもう一つ、起動します。

新しいターミナルで次のコマンドを実行して、「hashimoto」ユーザーでログインします。

・「sudo login hashimoto」コマンドを実行します。

パスワードを入力してログインするとプロンプトが「hashimoto@ubuntu-vm:~$」に変わります。

user01@ubuntu-vm:~$ sudo login hashimoto
[sudo] user01 のパスワード: 
パスワード: 

Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 6.5.0-35-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

Expanded Security Maintenance for Applications is not enabled.
(省略)

hashimoto@ubuntu-vm:~$

元のターミナルに戻ります。

・「userdel -r hashimoto」コマンドを実行します。

 「hashimoto」ユーザーが現在ログインしているため、「hashimoto」ユーザーを削除することができません。

root@ubuntu-vm:~# userdel -r hashimoto
userdel: user hashimoto is currently used by process 4978

・「userdel --force -r hashimoto」コマンドを実行します。

 「hashimoto」ユーザーが現在ログインしている場合でも強制的にアカウントを削除します。NFSマウントされたホームディレクトリも削除します。このオプションは、通常の削除方法ではユーザーを削除できない場合に使用します。

root@ubuntu-vm:~# userdel --force -r hashimoto
userdel: user hashimoto is currently used by process 5099
userdel: hashimoto のメールスプール (/var/mail/hashimoto) がありません

以下のコマンドを実行します。

  • grep hashimoto /etc/passwd」コマンドを実行します。
  • ls /home」コマンドを実行します。

「hashimoto」ユーザーが削除されていることが確認できます。

root@ubuntu-vm:~# grep hashimoto /etc/passwd
root@ubuntu-vm:~# ls /home
suzuki  tanaka  user01

まとめ

 「userdel」コマンドは、ユーザーアカウントをシステムから削除するための重要なツールです。「-r」オプションを使用すると、ユーザーのホームディレクトリやメールスプールを含むすべてのファイルも削除されます。

 「--force」オプションを使用すると、現在ログイン中のユーザーやNFSマウントされたホームディレクトリも強制的に削除できます。これらのオプションを適切に使用することで、ユーザーアカウントの管理を効率的に行うことができます。