批量更新组密码
命令语法格式
chgpasswd [options]
命令描述
命令chgpasswd从标准输入中读取一个组名和密码对的列表,并使用此信息更新一组现有组。每行的格式如下:
默认情况下,提供的密码必须是明文形式,并由chgpasswd加密。
可以使用/etc/login.defs的ENCRYPT_METHOD变量为系统定义默认加密算法,并且可以使用-e,-m,-c选项覆盖该算法。
此命令旨在用于一次创建许多帐户的大型系统环境中。
命令支持的选项及含义
命令chgpasswd支持如下选项:
-c, –crypt-method METHOD
使用指定的方法加密密码。如果你的libc支持这些方法,可用的METHOD是DES,MD5,NONE,SHA256,SHA512。
-s, –sha-rounds ROUNDS
使用指定的轮数加密密码。值为0表示系统将选择crypt方法的默认轮数(5000)。将强制执行最小值1,000和最大值999,999,999。您只能将此选项与SHA256或SHA512加密方法一起使用。
默认情况下,用PAM加密密码。
-e, –encrypted
告诉chgpasswd密码是加密的形式。
-m, –md5
当提供的密码未加密时,使用MD5加密,而不是DES。
默认情况下,轮数是由/etc/login.defs中的SHA_CRYPT_MIN_ROUNDS和SHA_CRYPT_MAX_ROUNDS变量定义。
-R, –root CHROOT_DIR
在CHROOT_DIR中应用更改,并使用CHROOT_DIR目录中的配置文件。
-h, –help
显示帮助信息并退出。
注意事项
请记住设置适当的权限或umask值,以防止其他用户对未加密文件的读取。
你要确认密码和加密方法符合系统的密码策略。
配置文件
在/etc/login.defs中的以下配置变量会影响命令chgpasswd的行为:
MAX_MEMBERS_PER_GROUP (number)
每组条目的最大成员数。达到最大值时,将在/etc/group中创建新的组条目(行),并具有相同的名称、相同的密码、相同的GID值。
该属性默认值为0,表示组中的成员数没有限制。
此功能(拆分组)允许限制group文件中的行长度。这有助于确保NIS组的行不超过1024个字符。
如果你需要强制执行此类限制,则可以使用25。
注意:并不是所有工具都支持拆分组,即使在Shadow软件包中也有些工具不支持。除非确实有必要,否则不应使用此变量。
SHA_CRYPT_MIN_ROUNDS (number), SHA_CRYPT_MAX_ROUNDS (number)
当ENCRYPT_METHOD设置为SHA256或SHA512时,这两个配置项定义了默认情况下加密算法使用的SHA轮数(当命令行中未指定轮数(-s)时)。
当轮次有很多时,暴力破解密码会更难。但请注意,在验证用户时也需要消耗更多的CPU资源。
如果仅设置了SHA_CRYPT_MIN_ROUNDS、SHA_CRYPT_MAX_ROUNDS值中的一个,则将使用此值。如果SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS,将使用最高值。如果未指定,则libc将选择默认轮数(5000)。值必须在1000-999,999,999范围内。
注意:这仅影响组密码的生成。 用户密码的生成由PAM完成,并受PAM配置的约束。 建议将此变量与PAM配置保持一致。
ENCRYPT_METHOD (string)
定义了用于加密密码的系统默认加密算法(如果在命令行上未指定加密算法时使用)。它可以采用的值有:DES(默认),MD5,SHA256,SHA512。
注意:此参数会覆盖MD5_CRYPT_ENAB变量。
注意:这仅影响组密码的生成。用户密码的生成由PAM完成,并受PAM配置的约束。建议PAM配置与此变量保持一致。
MD5_CRYPT_ENAB (boolean)
指示是否必须使用基于MD5的算法对密码进行加密。如果设置为yes,则使用与最近发布的FreeBSD版本兼容的基于MD5的算法来进行新密码的加密。它支持无限长度的密码和更长盐串。如果您需要将加密密码复制到其他不了解新算法的系统,请设置为no。默认为no。
此变量会被ENCRYPT_METHOD变量或用于配置加密算法的任何命令行选项替代。不推荐使用此变量。你应该使用ENCRYPT_METHOD。
注意:这仅影响组密码的生成。 用户密码的生成由PAM完成,并受PAM配置的约束。建议PAM配置与此变量保持一致。
相关文件
/etc/group
组帐号信息。
/etc/gshadow
安全组帐号信息。
/etc/login.defs
软件包Shadow中各个工具的配置文件,用于改变这些工具的行为。
相关手册
gpasswd(1), groupadd(8), login.defs(5).
参考文献
- man 8 chgpasswd, Version shadow-utils 4.4
更新日志
- 07/16/2018 创建文章