我正在尝试在RHEL 6.6上配置用户密码策略,并且希望系统要求新创建的用户在首次登录时更改初始密码。
请注意,我试图在/ etc / default / useradd中将EXPIRE变量设置为0,将INACTIVE设置为-1,但这会导致创建后新的用户帐户到期。使用这些变量创建用户后,chage命令的输出为:
# chage -l foo
Last password change : Feb 22, 2015
Password expires : May 23, 2015
Password inactive : never
Account expires : Feb 22, 2015
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
当我尝试以foo用户身份登录时,显示消息“您的帐户已过期。请与您的系统管理员联系”。
但是,如果我打开“用户属性”窗口,选择“密码信息”选项卡并选中“下次登录时强制更改密码”,结果将是我期望的。新用户将被要求更改密码。在这种情况下,chage命令的输出为:
# chage -l foo2
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
当我以foo2用户身份登录时,系统要求我更改密码。
那么,有什么方法可以像在第二种情况下那样配置系统以在创建时设置用户帐户参数?
更新
cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=0
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
即使我注释不活动或将其设置为正值,帐户也会过期,但密码不会过期。
另外,我在机器上配置了PAM。
更新2
我在具有RHEL 6.2且未配置PAM的计算机上进行了检查。效果是一样的。
EXPIRE=0
在/etc/default/useradd
应该做的工作。我读过你尝试过的。您可以添加的未注释行/etc/default/useradd
吗?即使您未指定INACTIVE = -1,而是指定了其他值,或者您注释了该行,它也会被锁定?您可以指定帐户是否被锁定,即使通过命令行创建帐户也是如此。并且,如果您有其他疑问,请在单独的页面中发布,以解决不同的疑问。
adduser
可以将chage
命令放入/usr/local/sbin/adduser.local
。您也可以将/ etc / shadow中的age字段直接设置为0。useradd
是“低级实用程序”,旨在与其他命令结合使用。
chage -d 0 {user-name}
。