Ubuntu で不要なユーザを削除する方法

Ubuntu,コマンド

Ubuntu で不要になったユーザーの削除方法について。付けるオプションとかユーザー削除できない時の原因や対処方法とか忘れないようにメモ。

前提・環境

  • Ubuntu 18.04 LTS
  • 作業者がsudo(管理者権限)を使える

ユーザを userde で削除する

不要になったユーザーを削除する場合はuserdeコマンドを使う

# 「user_name」は自分のユーザー名に置き換える
$ sudo userdel -r user_name
  • -rオプション(または--remove)を付けることでユーザディレクトリも同時に消す
  • ユーザーディレクトリを消したくない場合にはこの-rオプション(または--remove)を外して実行。

エラーなどが表示されなければ以上完了。

場合によっては以下のレスポンスが返ってくるがこれは大丈夫。

userdel: user_name mail spool (/var/mail/user_name) not found
userdel: user_name home directory (/home/user_name) not found

1行目は「user_name のメールスプール (/var/mail/user_name) がありません」
2行目は「user_name のホームディレクトリ (/home/user_name) がありません」
という事なので、削除するユーザーがメールを使ってなかったりホームディレクトリが無かったりすると表示される。

エラーが出た場合

Linuxユーザーをuserdelコマンドで削除できない場合、以下の可能性があるので確認。

  1. 存在しないユーザーを指定(削除しようと)している
    • 対処方法:指定したユーザーが存在するか、またスペルミスとかも確認
  2. 削除しようとしているユーザーがログイン中
    • 確認方法:whoコマンドでログイン中のユーザーを確認
    • 対処方法:そのユーザーをログアウトさせる
  3. スーパーユーザー・root権限(管理者権限)を持たないユーザーでuserdelを実行している
    • 対処方法:管理者権限ユーザーでuserdelコマンドを実行する
  4. 削除しようとしているユーザーが何らかのプロセスを実行中
    • 確認方法:psコマンドでps aux | grep user_nameなどして対象ユーザーが所有者のプロセスを検索
    • 対処方法:問題無いかを確認し、同プロセスをkillコマンドで削除

killしたプロセスが Apache や MySQL を起動させていた場合、それらも停止してしまうため注意する

補足・参考

ちなみに以下のコマンドでも上記と同様の事ができるが、こっちはあまり使わなそう。

$ sudo deluser --remove-home user_name