6. userdel 命令

userdel 是 Linux 系统中用于删除用户账户的命令,由 root 或具有 sudo 权限的用户执行。它不仅可以删除用户账户,还可以选择是否同时删除用户的主目录和邮件池(mail spool)。

作用

  1. 删除用户账户(从 /etc/passwd/etc/shadow 中移除记录)。
  2. 可选删除用户的主目录(/home/用户名)。
  3. 可选删除用户的邮件池(/var/mail/用户名)。

命令格式

userdel [选项] [用户名]

常用选项

选项
说明
-r
删除用户的同时,删除其主目录和邮件池(推荐使用)。
-f
强制删除用户,即使该用户仍处于登录状态或存在未退出的进程(谨慎使用)。
-Z
同时删除用户的 SELinux 上下文(仅适用于 SELinux 系统)。

示例

删除 li4 账户的所有信息

weimingze@mzstudio:~$ ls /home/
lisi  weimingze
weimingze@mzstudio:~$ ls /var/mail/
weimingze@mzstudio:~$ tail -2 /etc/passwd
zhang3:x:1001:1002::/home/zhang3:/bin/sh
li4:x:1002:1001:develop_lisi:/home/lisi:/bin/sh
weimingze@mzstudio:~$ sudo tail -2 /etc/shadow
[sudo] password for weimingze:
zhang3:!:20230:0:99999:7:::
li4:$y$j9T$tMMhKiIFx.bZrl9okX8gI1$71O/ie4nl4ud223.7wZAuJed9/GzkpbiofwFVyJxKU5:20230:0:99999:7:::
weimingze@mzstudio:~$ sudo userdel -r li4
userdel: li4 mail spool (/var/mail/li4) not found
weimingze@mzstudio:~$ ls /home/
weimingze
weimingze@mzstudio:~$ tail -2 /etc/passwd
sshd:x:122:65534::/run/sshd:/usr/sbin/nologin
zhang3:x:1001:1002::/home/zhang3:/bin/sh
weimingze@mzstudio:~$ sudo tail -2 /etc/shadow
sshd:!:20230::::::
zhang3:!:20230:0:99999:7:::
weimingze@mzstudio:~$

删除 li4 用户的信息并保留主文件夹(主目录)则需要用 sudo userdel li4 命令。

练习: