Mik*_*kov 11 security passwords redhat-enterprise-linux
我正在尝试在 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
Run Code Online (Sandbox Code Playgroud)
当我尝试以 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
Run Code Online (Sandbox Code Playgroud)
当我以 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
Run Code Online (Sandbox Code Playgroud)
即使我评论 INACTIVE 或将其设置为正值,帐户已过期,但不是密码。
另外,我在机器上配置了 PAM。
我在带有 RHEL 6.2 且没有 PAM 配置的机器上检查了这个。效果是一样的。
小智 -1
更新此文件:
/etc/default/useradd该文件包含详细信息,即所有设置将应用于使用 useradd 命令创建到系统中的新用户。
只需在该文件中设置EXPIRE=0的值,之后每次创建新用户时,都会强制他们在下次登录时更改密码。
来源:GeekRide
现在,在终端中编辑该文件非常困难。所以我使用以下命令将文件的权限更改为 777:
chmod 777 /etc/default/useradd
Run Code Online (Sandbox Code Playgroud)
并在 grub 中编辑它。
(感谢Linux 命令。)
检查了我的 Ubuntu 12.04.5 VM。
使用以下语法强制用户在下次登录 Linux 时更改密码:
# chage -d 0 {user-name}在此示例中,强制 Tom 在下次登录时更改密码,请输入:
# chage -d 0 tom-d 0 :设置自 1970 年 1 月 1 日上次更改密码以来的天数。日期也可以用 YYYY-MM-DD 格式表示。通过将其设置为零,您将强制用户在首次登录时更改密码。
来源:nixCraft
纯粹的复制粘贴。字面上地。;)
检查了我的 Ubuntu 12.04.5 虚拟机。