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
    此字段用于定义用户的主目录。

    If this field does not specify an existing directory, the specified directory is created, with ownership set to the user being created or updated and its primary group. Note that newusers does not create parent directories of the new user's home directory. The newusers command will fail to create the home directory if the parent directories do not exist, and will send a message to stderr informing the user of the failure. The newusers command will not halt or return a failure to the calling shell if it fails to create the home directory, it will continue to process the batch of new users specified.

    如果现有用户的主目录变更，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, --rootCHROOT_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，将会使用大的那个。

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 密码套件配置。

参见

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