「userdel(8)」-

删除用户及相关文件

命令语法格式

userdel [options] LOGIN

命令描述

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

命令userdel是用于删除用户的低级实用程序。在Debian上,管理员通常应该使用deluser(8)命令。

命令支持的选项及含义

命令userdel支持如下选项:

-r, –remove
用户主目录中的文件将与主目录本身和用户的邮件目录一起删除。位于其他文件系统中的文件必须手动搜索和删除。

-f, –force
此选项强制删除用户帐户,即使用户仍然登录。它还强制userdel删除用户的主目录和邮件目录,即使其他用户使用相同的主目录或邮件目录不属于指定用户。如果在/etc/login.defs中将USERGROUPS_ENAB定义为yes,并且如果存在与已删除用户同名的组,则该组将被删除,即使它是仍然是另一个用户的主要组。

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

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

-R, –root CHROOT_DIR
在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。

-Z, –selinux-user
删除用户登录的任何SELinux用户映射。

-h, –help
显示帮助信息并退出。

配置文件

在/etc/login.defs中的以下配置变量会影响命令groupadd的行为:

MAIL_DIR (string)
邮件目录。修改或删除相应的用户帐户时,需要该变量来操作邮箱。如果未指定,则使用编译时默认值。

MAIL_FILE (string)
定义用户邮件文件相对于其主目录的位置。

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

MAX_MEMBERS_PER_GROUP (number)
每组条目的最大成员数。达到最大值时,将在/etc/group中创建新的组条目(行),并具有相同的名称、相同的密码、相同的GID值。

该属性默认值为0,表示组中的成员数没有限制。

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

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

注意:并不是所有工具都支持拆分组,即使在Shadow软件包中也有些工具不支持。除非确实有必要,否则不应使用此变量。

USERDEL_CMD (string)
如果已定义,则在删除用户时将运行此命令。该命令应该用于删除被删除用户拥有的任何at/cron/print作业等(用户作为第一个参数传递)。

不考虑脚本的返回代码。

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

#! /bin/sh

# Check for the required argument.
if [ $# != 1 ]; then
echo "Usage: $0 username"
exit 1
fi

# Remove cron jobs.
crontab -r -u $1

# Remove at jobs.
# Note that it will remove any jobs owned by the same UID,
# even if it was shared by a different username.
AT_SPOOL_DIR=/var/spool/cron/atjobs
find $AT_SPOOL_DIR -name "[^.]*" -type f -user $1 -delete \;

# Remove print jobs.
lprm $1

# All done.
exit 0

USERGROUPS_ENAB (boolean)
如果设置为yes,命令userdel将删除指定用户的组(前提是改组不包含更多成员)。因为命令useradd在创建用户时,如果不指定组将默认创建一个与用户名相同的组。

注意事项

删除一个账户时,如果存在属于此帐户的正在运行的进程,命令userdel将不允许你删除帐户。在这种情况下,你可能必须终止这些进程或锁定用户的密码或帐户,并之后在删除该帐户。选项-f可以强制删除此帐户。

你应手动检查所有文件系统,以系统中不再存在属于此用户的文件。

你可能无法删除NIS客户端上的任何NIS属性。这必须在NIS服务器上执行。

如果在/etc/login.defs中将USERGROUPS_ENAB定义为yes,则userdel将删除与用户同名的组。为避免passwd和group数据库文件中的不一致,命令userdel将检查该组是否用作另一个用户的基本组,并且只是警告而不删除该组。-f选项可以强制删除该组。

相关文件

/etc/group
组帐号信息。

/etc/login.defs
软件包Shadow中各个命令的配置文件。

/etc/passwd
用户帐号信息。

/etc/shadow
安全用户帐号信息。

/etc/subgid
每个用户从属GID。

/etc/subuid
每个用户的从属UID。

退出状态

命令userdel会以下列状态值退出:

0 成功

1 无法更新passwd文件

2 命令语法无效

6 指定的用户不存在

8 用户当前已登录

10 无法更新group文件

12 无法删除主目录

相关手册

chfn(1), chsh(1), passwd(1), login.defs(5), gpasswd(8), groupadd(8), groupdel(8), groupmod(8), subgid(5), subuid(5), useradd(8), usermod(8).

参考文献

  • man 8 userdel, Version shadow-utils 4.4

更新日志

  • 07/16/2018 创建文章