Scroll to navigation

CHPASSWD(8) 系统管理命令 CHPASSWD(8)

名称

chpasswd - 批量更新密码

大纲

chpasswd [选项]

描述

The chpasswd command reads a list of user name and password pairs from standard input and uses this information to update a group of existing users. Each line is of the format:

user_name:password

默认必须明文提供密码,然后由 chpasswd 加密。如果存在密码年龄信息,也会更新之。

The default encryption algorithm can be defined for the system with the ENCRYPT_METHOD or MD5_CRYPT_ENAB variables of /etc/login.defs, and can be overwitten with the -e, -m, or -c options.

chpasswd first updates all the passwords in memory, and then commits all the changes to disk if no errors occured for any user.

此命令一般用于需要一次创建很多用户的大型系统。

选项

chpasswd 可以接受的选项有:

-c, --crypt-methodMETHOD

使用指定的方法加密密码。

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

By default (if none of the -c, -m, or -e options are specified), the encryption method is defined by the ENCRYPT_METHOD or MD5_CRYPT_ENAB variables of /etc/login.defs.

-e, --encrypted

提供的密码是已经加密了的

-h, --help

现实帮助信息并退出。

-m, --md5

如果提供的密码没有加密,则使用 MD5 加密而不是 DES。

-R, --rootCHROOT_DIR

Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.

-s, --sha-roundsROUNDS

使用指定次数的轮转来加密密码。

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

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

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

By default, the number of rounds is defined by the SHA_CRYPT_MIN_ROUNDS and SHA_CRYPT_MAX_ROUNDS variables in /etc/login.defs.

CAVEATS

记住要设置权限或者掩码来阻止其它用户对未加密文件的读取。

配置文件

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

ENCRYPT_METHOD (string)

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

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

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

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

SHA_CRYPT_MIN_ROUNDS (number), SHA_CRYPT_MAX_ROUNDS (number)

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

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

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

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

如果只设置了一个 SHA_CRYPT_MIN_ROUNDSSHA_CRYPT_MAX_ROUNDS 值,就会使用这个值。

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

文件

/etc/passwd

用户账户信息。

/etc/shadow

安全用户账户信息。

/etc/login.defs

Shadow 密码套件配置。

参见

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

2016-05-11 shadow-utils 4.1.5.1