NEWUSERS(8)

名称
newusers - 批量更新和创建新用户

大纲

newusers [选项] [文件]

描述

The newusers command reads a file (or the standard input by default) and uses this information to update a set of existing users or to create new users. Each line is in the same format as the standard password file (see passwd(5)) with the exceptions explained below:

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

pw_name
    这是用户的用户名。

    既可以是新用户名也可以是现有用户名(也可以是 newusers 以前创建的用户)。现有用户时，将会更改用户信息，否则会创建新用户。

pw_passwd
    此字段将被加密然后用于加密后密码的新值。

pw_uid
    此字段用于定义用户的 UID。

    如果此字段为空，newusers 会自动确定一个新的(未使用的)UID。

    如果此字段包含一个数字，此数字会用于 UID。

    如果此字段包含已经使用了的用户名(或者 newusers 在前边已经创建的一个用户)，将会使用指定用户的 UID。

    如果一个现有用户更改了 UID，此用户的文件所有权需要手动修复。

pw_gid
    此字段用于定义用户的主组 ID。

    如果此字段包含一个现有组的组名(或者 newusers 在前边创建的一个组)，此组的 GID 会被用于做此用户的主组 ID。

    如果此字段是一个数字，此数字会被用作此用户的主组 ID。如果没有对应此 GID 的现有组，将会使用此 GID 创建一个新组，名称和用户名相同。

    如果此字段为空，将会使用用户名作为组名，newusers 自动确定的一个 GID 作为主组 ID 来创建一个新组。

    如果此字段包含一个不存在的组的名字(也没有由 newusers 在前边创建)，将使用指定的组名和 newusers 自动确定的 GID 创建一个组，并作为用户的主组。

pw_gecos
    此字段复制到用户的 GECOS 字段。

pw_dir
    此字段用于定义用户的主目录。

    如果此字段指定的不是现有的目录，将会创建指定的目录，所有权设置为创建或更新的用户及其主组。

    如果现有用户的主目录变更，newusers 不会移动或者复制旧目录的内容到新位置。这需要手动完成。

pw_shell
    此字段定义了用户的 shell。对此字段不进行任何检查。

newusers 首先尝试创建或更改所有指定的用户，然后将这些更改写入用户或组数据库。如果发生错误(除非是在最后写入数据库过程中)，不会有任何更改。

此命令一般用于在大型的应用环境中，对大量账户进行一次性更新。

选项

newusers 命令可以使用的选项有：

-c, --crypt-method
    使用指定的方法加密密码。

    可用的方法有 DES, MD5, NONE, and SHA256 或 SHA512，前提是您的 libc 支持这写方法。

-h, --help
    现实帮助信息并退出。

-r, --system
    创建一个系统账户。

    System users will be created with no aging information in /etc/shadow, and their numeric identifiers are chosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in login.defs, instead of UID_MIN-UID_MAX (and their GID counterparts for the creation of groups).

-R, --root CHROOT_DIR
    Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.

-s, --sha-rounds
    使用指定次数的轮转来加密密码。

    值 0 表示让系统为加密方法选择默认的轮转次数 (5000)。

    会强制最小 1,000，最大 9,9999,9999

    您只可以对 SHA256 或 SHA512 使用此选项。

    默认，轮转数由 /etc/login.defs 文件中的 SHA_CRYPT_MIN_ROUNDS 和 SHA_CRYPT_MAX_ROUNDS 变量确定。

CAVEATS

输入文件必须受到保护，因为它包含未加密的密码。

您需要确保你吗和加密方法符合系统的密码策略。

配置文件

在 /etc/login.defs 中有如下配置变量，可以用来更改此工具的行为：

ENCRYPT_METHOD (string)
    这定义了系统加密密码的默认算法(如果没有在命令行上指定算法)。

    可以使用如下值：DES (default), MD5, SHA256, SHA512.

    注意，此参数会覆盖 MD5_CRYPT_ENAB 变量。

GID_MAX (number), GID_MIN (number)
    useradd，groupadd 或 newusers 创建的常规组的组 ID 的范围。

    GID_MIN 和 GID_MAX 的默认值分别是 1000 和 60000。

MAX_MEMBERS_PER_GROUP (number)
    每个组条目的最大成员数。达到最大值时，在 /etc/group 开始一个新条目(行)(使用同样的名称，同样的密码，同样的 GID)。

    默认值是 0，意味着组中的成员数没有限制。

    此功能(分割组)允许限制组文件中的行长度。这对于确保 NIS 组的行比长于 1024 字符。

    如果要强制这个限制，可以使用 25。

    注意：分割组可能不受所有工具的支持(甚至在 Shadow 工具集中)。您不应该使用这个变量，除非真的需要。

MD5_CRYPT_ENAB (boolean)
    表示密码是否必须使用基于 MD5 的算法加密。如果设为 yes，新密码将使用可以和新版 FreeBSD 兼容的基于 MD5 的算法加密。它支持无限长度的密码以及更长的盐字符串。如果您需要将加密的密码复制到其它不理解新算法的系统，设置为 no。默认值是 no。

    This variable is superseded by the ENCRYPT_METHOD variable or by any command line option used to configure the encryption algorithm.

    此变量已经废弃。您应该使用 ENCRYPT_METHOD。

PASS_MAX_DAYS (number)
    一个密码可以使用的最大天数。如果密码比这旧，将会强迫更改密码。如果不指定，就假定为 -1，这会禁用这个限制。

PASS_MIN_DAYS (number)
    两次更改密码时间的最小间隔。将会拒绝任何早于此的更改密码的尝试。如果不指定，假定为 -1，将会禁用这个限制。

PASS_WARN_AGE (number)
    密码过期之前给出警告的天数。0 表示只有只在过期的当天警告，负值表示不警告。如果没有指定，不会给警告。

SHA_CRYPT_MIN_ROUNDS (number), SHA_CRYPT_MAX_ROUNDS (number)
    ENCRYPT_METHOD 设为 SHA256 或 SHA512 时，此项确定加密算法默认使用 SHA 轮转数目(当轮转数没有通过命令行指定时)。

    使用很多轮转，会让暴力破解更加困难。但是需要注意，认证用户时也会需要更多的 CPU 资源。

    如果没有指定，libc 会选择默认的轮转数(5000)。

    值必须在 1000 - 999,999,999 之间。

    如果只设置了一个 SHA_CRYPT_MIN_ROUNDS 或 SHA_CRYPT_MAX_ROUNDS 值，就会使用这个值。

    如果 SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS，将会使用大的那个。

SUB_GID_MIN (number), SUB_GID_MAX (number), SUB_GID_COUNT (number)
    If /etc/subuid exists, the commands useradd and newusers (unless the user already have subordinate group IDs) allocate SUB_GID_COUNT unused group IDs from the range SUB_GID_MIN to SUB_GID_MAX for each new user.

    The default values for SUB_GID_MIN, SUB_GID_MAX, SUB_GID_COUNT are respectively 100000, 600100000 and 10000.

SUB_UID_MIN (number), SUB_UID_MAX (number), SUB_UID_COUNT (number)
    If /etc/subuid exists, the commands useradd and newusers (unless the user already have subordinate user IDs) allocate SUB_UID_COUNT unused user IDs from the range SUB_UID_MIN to SUB_UID_MAX for each new user.

    The default values for SUB_UID_MIN, SUB_UID_MAX, SUB_UID_COUNT are respectively 100000, 600100000 and 10000.

SYS_GID_MAX (number), SYS_GID_MIN (number)
    useradd、groupadd 或 newusers 创建的系统组的组 ID 的范围。

    SYS_GID_MIN 和 SYS_GID_MAX 的默认值分别是 101 和 GID_MIN-1。

SYS_UID_MAX (number), SYS_UID_MIN (number)
    useradd 或 newusers 创建的系统用户的用户 ID 的范围。

    SYS_UID_MIN 和 SYS_UID_MAX 的默认值分别是 101 和 UID_MIN-1。

UID_MAX (number), UID_MIN (number)
    useradd 或 newusers 创建的普通用户的用户 ID 的范围。

    UID_MIN 和 UID_MAX 的默认值分别是 1000 和 60000。

UMASK (number)
    文件模式创建掩码初始化为此值。如果没有指定，掩码初始化为 022。

    useradd 和 newusers 使用此掩码设置它们创建的用户主目录的模式。

    也被 login 用于指定用户的初始 umask。注意，此掩码可以被用户的 GECOS 行覆盖(当设置了 QUOTAS_ENAB 时)，也可以被带 K 指示符的 limits(5) 定义的限制值覆盖。

文件

/etc/passwd
    用户账户信息。

/etc/shadow
    安全用户账户信息。

/etc/group
    组账户信息。

/etc/gshadow
    安全组账户信息。

/etc/login.defs
    Shadow 密码套件配置。

/etc/subgid
    Per user subordinate group IDs.

/etc/subuid
    Per user subordinate user IDs.

参见

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