"User delete" 的缩写,是一个用于删除系统中现有用户账户的命令行工具。
该命令通过移除 /etc/passwd、/etc/shadow 等系统配置文件中的用户记录,实现用户账户的删除,可配合选项清理用户主目录及相关数据,是系统用户生命周期管理的重要命令。
userdel [选项] <用户名>常用选项
-r或--remove:"remove home directory",删除用户的同时,递归删除其主目录(如/home/用户名)和邮件缓存(通常位于/var/spool/mail/用户名),例如sudo userdel -r john彻底删除john及其主目录。-f或--force:"force delete",强制删除用户,即使用户当前处于登录状态或有进程在运行,例如sudo userdel -f temp强制删除正在使用的临时用户temp(可能导致文件权限残留问题)。-Z或--selinux-user:"remove SELinux user mapping",删除用户时同时移除其 SELinux 相关映射(仅适用于启用 SELinux 的系统),例如sudo userdel -Z apache清理apache用户的 SELinux 配置。
参考示例
示例1:基础删除用户(保留主目录) 执行
sudo userdel alice,删除用户alice的账户记录(保留/home/alice主目录),适合需要保留用户数据但禁用账户的场景。示例2:彻底删除用户及所有数据 执行
sudo userdel -r bob,删除bob的账户并自动清理其主目录/home/bob和邮件文件/var/spool/mail/bob,适合完全移除离职员工账户。示例3:强制删除登录中的用户 执行
sudo userdel -f -r charlie,强制终止charlie的所有进程并删除账户,同时清理主目录,适合紧急移除恶意用户账户。示例4:删除用户后手动清理残留组 执行
sudo userdel dave后,若存在与dave同名的私有组,需执行sudo groupdel dave手动删除,避免残留无用组。示例5:在脚本中批量删除临时用户 脚本中执行:
for user in $(cat temp_users.txt); do # 先终止用户进程 sudo pkill -u $user # 彻底删除用户及数据 sudo userdel -r $user echo "Deleted user: $user" done批量删除
temp_users.txt中记录的临时用户,删除前先终止进程以避免强制删除导致的问题。示例6:删除系统用户(无主目录) 执行
sudo userdel nginx,删除nginx系统用户(通常无主目录),适合卸载相关服务后清理残留账户。
注意:
删除正在登录的用户可能导致系统残留临时文件,建议先通过
pkill -u 用户名终止用户进程。使用
-r选项前请确认主目录中无重要数据,必要时先备份(如cp -r /home/用户名 /backup/)。普通用户无权限执行
userdel,需以 root 权限运行(使用sudo)。