命令行手册

Man » userdel 在线手册 - userdel 手册页的详细在线文档

🌍
userdel - 删除用户帐户和相关文件

概要

userdel [选项] LOGIN

描述

userdel 是一个用于删除用户的低级工具。在 Debian 上,管理员通常应使用 [deluser]({filename}../../deluser)(8) 代替。

userdel 命令修改系统帐户文件,删除所有引用用户名称 LOGIN 的条目。指定的用户必须存在。

选项

适用于 userdel 命令的选项是:

-f, --force

此选项强制删除用户帐户以及任何其他请求的操作,并跳过任何安全检查。

注意:此选项很危险,可能会导致系统处于不一致状态。

-h, --help

显示帮助消息并退出。

-r, --remove

用户主目录中的文件将被删除,以及主目录本身和用户的邮件 spool。位于其他文件系统上的文件需要手动搜索并删除。

邮件 spool 由 login.defs 文件中的 MAIL_DIR 变量定义。

-R, --root CHROOT_DIR

在 CHROOT_DIR 目录中应用更改,并使用 CHROOT_DIR 目录中的配置文件。仅支持绝对路径。

-P, --prefix PREFIX_DIR

在 PREFIX_DIR 目录中应用更改,并使用 PREFIX_DIR 目录中的配置文件。此选项不执行 chroot,而是用于准备交叉编译目标。存在一些限制:NIS 和 LDAP 用户/组不会被验证。PAM 身份验证使用主机文件。不支持 SELINUX。

-Z, --selinux-user

删除用户的登录的任何 SELinux 用户映射。

配置

/etc/login.defs 中的以下配置变量会更改此工具的行为:

MAIL_DIR(字符串)

邮件 spool 目录。在修改或删除相应的用户帐户时,需要操作邮箱。如果未指定,则使用编译时默认值。/etc/default/useradd 中的 CREATE_MAIL_SPOOL 参数确定是否应创建邮件 spool。

MAIL_FILE(字符串)

相对于用户的主目录,定义用户邮件 spool 文件的位置。

useradd、usermod 和 userdel 使用 MAIL_DIR 和 MAIL_FILE 变量来创建、移动或删除用户的邮件 spool。

MAX_MEMBERS_PER_GROUP(数字)

每个组条目的最大成员数。达到最大值时,将在 /etc/group 中启动一个新的组条目(具有相同的名称、相同的密码和相同的 GID)。

默认值为 0,这意味着组中成员的数量没有限制。

此功能(拆分组)允许限制组文件中的行长度。这对于确保 NIS 组的行不超过 1024 个字符非常有用。


如果您需要强制执行此限制,可以使用 25。

注意:并非所有工具(即使在 Shadow 工具套件中)都支持拆分组。
除非您真的需要,否则不应使用此变量。

USERDEL_CMD (字符串) 如果定义了此命令,则在删除用户时将运行此命令。它应该删除属于要删除的用户(作为第一个参数传递)的所有 at/cron/print 作业等。

该脚本的返回代码不会被考虑。

以下是一个示例脚本,它删除用户的 cron、at 和 print 作业:

#! /bin/sh

# 检查是否提供了必需的参数。
if [ $# != 1 ]; then
echo "用法:$0 用户名"
exit 1
fi

# 删除 cron 作业。
crontab -r -u $1

# 删除 at 作业。
# 请注意,它将删除所有属于相同 UID 的作业,
# 即使它由不同的用户名共享。
AT_SPOOL_DIR=/var/spool/cron/atjobs
find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;

# 删除 print 作业。
lprm $1

# 完成。
exit 0

USERGROUPS_ENAB (布尔值) 如果设置为 yes,userdel 将删除用户组(如果该组不再包含任何成员),并且 useradd 将默认创建一个与用户同名的组。

文件

/etc/group

组帐户信息。

/etc/login.defs

Shadow 密码套件配置。

/etc/passwd

用户帐户信息。

/etc/shadow

安全的用户帐户信息。

/etc/shadow-maint/userdel-pre.d/*, /etc/shadow-maint/userdel-post.d/*

在用户删除期间执行的 run-part 文件。环境变量 ACTION 将填充 userdel,SUBJECT 将填充用户名。userdel-pre.d 将在任何用户删除之前执行。userdel-post.d 将在用户删除之后执行。如果脚本以非零退出,则执行将终止。

/etc/subgid

每个用户的辅助组 ID。

/etc/subuid

每个用户的辅助用户 ID。

退出值

userdel 命令的退出值为:

0   成功

1   无法更新密码文件

2   无效的命令语法

6   指定的用户不存在

8   用户当前已登录

10  无法更新组文件

12  无法删除主目录

注意事项

userdel 不允许您删除帐户,如果存在属于该帐户的正在运行的进程。在这种情况下,您可能需要终止这些进程或锁定用户的密码或帐户,稍后删除该帐户。-f 选项可以强制删除此帐户。

您应该手动检查所有文件系统,以确保没有剩余的文件由此用户拥有。

您不能删除 NIS 客户端上的任何 NIS 属性。这必须在 NIS 服务器上执行。

如果 /etc/login.defs 中的 USERGROUPS_ENAB 定义为 yes,userdel 将删除与用户同名的组。为了避免 passwd 和 group 数据库中的不一致性,userdel 将检查此组是否用作另一个用户的 prim