在 Linux 系统中,deluser 和 userdel 都是用于删除用户的命令,但它们来自不同的工具集,功能和使用方式有所不同。
userdel 是 原生 Linux 命令,属于 shadow-utils 软件包(大多数发行版预装)。-r:删除用户的同时,删除其家目录和邮件文件(/var/mail/<用户名>)。-f:强制删除用户(即使用户当前已登录)。sudo userdel -r username # 删除用户并清理家目录
deluser 是 Debian/Ubuntu 特有的高级脚本,属于 adduser 软件包(基于 Perl 编写)。userdel 更友好,默认会处理更多清理工作(如从组中移除用户、备份文件等)。--remove-home:删除家目录及邮件文件。--remove-all-files:删除用户所有文件(包括系统其他位置的文件)。--backup:删除前备份用户文件到当前目录。--group:删除用户的同时删除其私有组(当用户是组的唯一成员时)。sudo deluser --remove-home username # 删除用户并清理家目录
| 特性 | userdel |
deluser |
|---|---|---|
| 通用性 | 所有 Linux 发行版通用 | 主要用于 Debian/Ubuntu 系列 |
| 功能 | 基础删除,需手动指定选项 | 更智能,默认处理更多清理 |
| 家目录处理 | 需加 -r 选项才删除 |
需加 --remove-home 选项 |
| 文件清理 | 不自动搜索其他文件 | 可用 --remove-all-files 彻底清理 |
| 组处理 | 不自动处理用户所属组 | 可自动从组中移除用户 |
| 备份支持 | 无 | 支持备份用户文件 |
userdel(更通用)。deluser(更安全、功能更全)。# 使用 userdel 删除用户及家目录
sudo userdel -r testuser
# 使用 deluser 删除用户、家目录并备份
sudo deluser --remove-home --backup testuser
两者最终都会修改 /etc/passwd、/etc/group 等系统文件,但 deluser 在易用性和安全性上做了更多封装。