Linux 常用命令 - userdel 【删除用户】

简介

userdel 这个命令源自于 "user delete",即用户删除。这个命令主要用于在 Linux 系统中删除用户账户及其相关文件。当管理员需要移除一个用户及其在系统中的所有踪迹时,会用到这个命令。

使用方式

shell 复制代码
userdel [选项] 用户名

常用参数

  • -f:强制删除用户,即使用户当前已登录。

  • -r:删除用户的同时,也删除用户的主目录和用户的邮件池。

  • -R:后跟一个目录名(CHROOT_DIR),表示在指定目录中执行 userdel 操作,并且使用指定目录下的配置文件。

  • -P:后跟一个目录名(PREFIX_DIR),表示在指定目录中执行 userdel 操作,并且使用指定目录下的配置文件。但该选项不会进行 chroot 操作,旨在为交叉编译目标准备环境。

  • -Z:删除与用户相关的 SELinux 用户映射。

  • --help:显示帮助信息。

相关文件

  • /etc/group:用户组信息。

  • /etc/login.defs:为 shadow 密码套件提供的配置信息。

  • /etc/passwd:用户账户信息。

  • /etc/shadow:用户账户的安全信息,包含密码的散列值及账户有效期等,只能由 root 账户读取。

  • /etc/subgid:存储每个用户辅助组ID信息。

  • /etc/subuid:存储每个用户的辅助用户ID信息。

命令返回值

使用 userdel 命令可能的返回值如下:

  • 0:成功。

  • 1:无法更新密码(用户信息)文件。这可能是因为密码文件(通常是 /etc/passwd 或 /etc/shadow)无法访问或修改。

  • 2:无效的命令语法。

  • 6:指定用户不存在。

  • 8:用户当前是登录状态。

  • 10:无法更新组文件。

  • 12:无法删除用户主目录。

参考示例

1.删除指定用户信息

shell 复制代码
userdel testuser

创建一个名为 testuser 的测试用户,并查看对应的用户信息确认创建成功。然后使用 userdel 指令删除测试用户,再次查看用户信息可以看到原有的用户信息已经不存在,确认删除成功:

c 复制代码
root@jaylinuxlenovo:~# useradd testuser
root@jaylinuxlenovo:~# cat /etc/passwd | grep testuser
testuser:x:1003:1003::/home/testuser:/bin/sh
root@jaylinuxlenovo:~# userdel testuser
root@jaylinuxlenovo:~# cat /etc/passwd | grep testuser
root@jaylinuxlenovo:~# 

2.删除指定用户信息与其主目录

shell 复制代码
userdel -r testuser

创建一个名为 testuser 的测试用户并为其创建主目录,查看 /home 目录下的所有目录可以看到 testuser 主目录创建成功。然后使用 userdel -r 命令删除用户信息及其主目录,再次查看 /home 目录,可以发现 testuser 目录已被成功删除,指令执行成功:

c 复制代码
root@jaylinuxlenovo:~# useradd -m testuser
root@jaylinuxlenovo:~# ls /home
jay  screeps  testuser
root@jaylinuxlenovo:~# userdel -r testuser
userdel: testuser mail spool (/var/mail/testuser) not found
root@jaylinuxlenovo:~# ls /home
jay  screeps
root@jaylinuxlenovo:~# 

注意事项

  • 在删除用户前,确保该用户没有正在运行的重要进程。
  • userdel 会修改几个重要的系统文件,以反映用户的删除。这些文件通常包括 /etc/passwd(存储用户账户信息)、/etc/shadow(存储加密的用户密码)、/etc/group(存储组信息)以及 /etc/gshadow(存储加密的组密码)。
  • 如果要删除的用户已经使用过系统一段时间,那么此用户可能在系统中留有其他文件,因此,如果我们想要从系统中彻底地删除某个用户,最好在使用 userdel 命令之前,先通过 find -user 用户名 命令查出系统中属于该用户的文件,然后再加以删除。
  • 对于系统用户(通常 UID < 1000),应谨慎使用 userdel,因为这可能影响系统的稳定性。
相关推荐
Lsetea2 小时前
curl指定CA目录仍报证书不受信任:--capath与OpenSSL rehash排查
运维·https·ssl·openssl·curl
夜听莺儿鸣3 小时前
502-002_Linux驱动开发模块化编程
linux·驱动开发·模块化编程
wuminyu3 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
优化Henry3 小时前
LTE 载波频率与频点配置详解
运维·网络·学习·5g·信息与通信
代码方舟4 小时前
数据科学风控实战:基于天远全能消金报告构建自动化信用评估网关
运维·人工智能·自动化
科力锐品牌君4 小时前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
KaiwuDB4 小时前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
zhangrelay4 小时前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
福建佰胜张工5 小时前
A5E00839230西门子工业核心配件详解:参数、安装调试与故障运维全攻略
运维·网络·安全·自动化
流浪0015 小时前
Linux系统篇39——线程(四) pthread库的由来和线程的创建与等待
linux·操作系统·线程·pthread库