「newusers(8)」-

批量创建或者更新用户

命令语法格式

newusers [options] [file]

命令描述

命令newusers读取文件file(或标准输入),并使用此信息更新一组现有用户或创建新用户。文件file中每行的格式与标准密码文件的格式相同(请参阅passwd(5)),但有以下例外情况:

pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

pw_name
用户名。它可以是新用户名或已存在的用户名(或newusers之前创建的用户)。如果用户已经存在,将更改用户的信息,否则将创建新用户。

pw_passwd
此字段将被加密,并用作加密密码的新值。

pw_uid
该字段用于定义用户的UID。如果该字段为空,则将自动分配未使用的UID。如果此字段包含数字,则此数字将用作UID。如果此字段包含已有用户名(或newusers之前创建的用户名),则将使用指定用户的UID。

如果更改了现有用户的UID,则应手动修复原用户文件的所有权。

pw_gid
该字段用于定义用户的主要组ID。如果此字段包含现有组名(或以前由newusers创建的组),则该组的GID将用作该用户的主要组ID。如果此字段是数字,则此数字将用作用户的主要组ID。如果此GID不存在任何组,则将使用此GID和用户名创建新组。如果此字段为空,则将使用用户名创建新组,新用户将自动定义GID以用作用户的主要组ID,并将其用作新组的GID。如果此字段包含不存在的组名(并且之前未由newusers创建),则将使用指定的名称创建新组,并且新用户将自动定义GID,并将该GID用作用户的主要组ID和新组的GID。

pw_gecos
该字段将复制到用户的GECOS字段中。

pw_dir
用于定义用户主目录。如果此字段未指定现有目录,则会创建指定的目录,并将所有权设置为正在创建或更新的用户及其主要组。

如果更改现有用户的主目录,则命令newusers不会将旧目录的内容移动或复制到新位置,这需要手动完成。

pw_shell
用于定义用户Shell。不对此字段执行检查。

命令newusers首先尝试创建或更改所有指定的用户,然后将这些更改写入用户或组数据库。如果发生错误(最终写入数据库异常除外),则不会对数据库进行任何更改。

在第一次传递期间,将使用锁定的密码创建用户(并且不会为未创建的用户更改密码)。 第二遍用于使用PAM更新密码。 报告无法更新密码,但不会停止其他密码更新。

此命令意图用于一次更新许多帐户的大型系统环境中。

命令支持的选项及含义

命令newusers支持如下选项:

-r, –system
创建系统帐户。

将在/etc/shadow中创建没有时效信息的系统用户,并且在login.defs中定义的SYS_UID_MIN-SYS_UID_MAX范围中选择其ID,而不是UID_MIN-UID_MAX中。同样的,创建组的GID也是如此,会使用与组创建相关的参数。

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

-h, –help
显示帮助选项并退出。

注意事项

由于文件中包含了明文的密码,所以要注意保护文件。

配置文件

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

GID_MAX (number), GID_MIN (number)
限制了由命令useradd、groupadd、newusers创建的普通组的GID范围。

参数GID_MIN的默认值为1000,相应的GID_MAX为60000。

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

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

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

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

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

PASS_MAX_DAYS (number)
密码可以使用的最大天数。如果密码早于此天数,则将强制更改密码。如果未指定,则假定为-1(禁用天数限制)。

PASS_MIN_DAYS (number)
两次密码更改之间的最少天数。任何小于该天数的密码更改都将被拒绝。如果未指定,则假定为-1(禁用天数限制)。

PASS_WARN_AGE (number)
密码到期前发出的警告天数。为零表示警告仅在到期日给出,否定表示不给出警告。如果未指定,则不会提供警告。

SUB_GID_MIN (number), SUB_GID_MAX (number), SUB_GID_COUNT (number)
如果/etc/subuid存在,则命令useradd、newusers(除非用户已具有从属GID)为每个新用户分配从SUB_GID_MIN到SUB_GID_MAX范围的SUB_GID_COUNT个未使用的GID。

其中,SUB_GID_MIN,SUB_GID_MAX,SUB_GID_COUNT的默认值分别为100000,600100000和10000。

SUB_UID_MIN (number), SUB_UID_MAX (number), SUB_UID_COUNT (number)
如果/etc/subuid存在,则命令useradd、newusers(除非用户已具有从属UID)为每个新用户分配SUB_UID_COUNT个从范围SUB_UID_MIN到SUB_UID_MAX的未使用的UID。

其中,SUB_UID_MIN,SUB_UID_MAX,SUB_UID_COUNT的默认值分别为100000,600100000和10000。

SYS_GID_MAX (number), SYS_GID_MIN (number)
限制了由命令useradd、groupadd、newusers创建的系统组的GID范围。

参数SYS_GID_MIN的默认值为101,相应的SYS_GID_MAX为GID_MIN – 1。

SYS_UID_MAX (number), SYS_UID_MIN (number)
命令useradd、newusers创建的系统用户的UID范围。其中,SYS_UID_MIN的默认值为101;相应的SYS_UID_MAX为UID_MIN-1。

UID_MAX (number), UID_MIN (number)
限制命令useradd、newusers创建的普通用户的UID范围。其中,UID_MIN的默认值为1000;相应的UID_MAX为60000。

UMASK (number)
创建文件时的权限掩码初始化为此值。如果未指定,则掩码将初始化为022。命令useradd、newusers使用此掩码来设置它们创建的主目录的默认权限。它也被pam_umask用作默认的umask值。

相关文件

/etc/passwd
用户帐户信息。

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

/etc/group
组帐户信息。

/etc/gshadow
安全的组帐户信息。

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

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

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

/etc/pam.d/newusers
用于newusers的PAM配置。

相关手册

login.defs(5), passwd(1), subgid(5), subuid(5), useradd(8).

参考文献

  • man 8 newusers, Version shadow-utils 4.4

更新日志

  • 07/16/2018 创建文章