在Linux中配置用户密码到期策略
在本教程中,我们将学会为Linux用户配置密码老化和到期策略,以及手动锁定和解锁用户帐户。
实施密码老化和过期功能,以确保更好的用户帐户安全性。
密码验证如何运作
当用户尝试登录时,系统在/etc/shadow文件中查找用户的条目,将用户与执行的未加密密码组合,并使用指定的散列算法加密它们。
如果结果与加密哈希匹配,则用户执行的密码。
如果结果与加密哈希不匹配,则用户执行错误的密码和登录尝试失败。
你会学会:
强制密码更改在第一次登录.Force密码更改每x天数。
设置用户帐户以从当天从x天过期。
在我们开始之前,我将为此练习创建一个用户帐户。
sudo useradd user1 sudo passwd user1
我们将了解其他用户操作与示例。
练习1:强制第一次登录时的密码更改
要强制在首次登录时更改用户的密码更改,请使用命令:
sudo chage -d 0 user1
如果我们以User1登录,系统将提示我们更改密码。
$ssh Hyman@theitroad Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. Hyman@theitroad's password: You are required to change your password immediately (administrator enforced) Last login: Wed Nov 12 06:48:43 2017 from ::1 WARNING: Your password has expired. You must change your password now and login again! Changing password for user user1. Current password: New password: Retype new password: passwd: all authentication tokens updated successfully. Connection to localhost closed.
我们现在可以使用更新的密码登录。
ssh Hyman@theitroad Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts. Hyman@theitroad's password: Last login: Wed Nov 12 06:48:53 2017 from ::1 [Hyman@theitroad ~]$exit logout Connection to localhost closed.
练习2:更改用户的密码策略
现在让我们设置密码策略以每90天需要新密码。
sudo chage -M 90 user1
确认已成功设置密码策略。
$sudo chage -l user1 Last password change : Nov 12, 2017 Password expires : Jan 12, 2017 Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 90 Number of days of warning before password expires : 7
练习3:设置用户帐户后x天数过期
我们将设置用户1帐户从当天开始120天。
从当前获取120天的日期和时间:
$date -d "+120 days" +%F 2017-06-11
现在将帐户设置为上面显示的日期过期。
sudo chage -E 2017-06-11 user1
验证帐户到期日是否已成功设置:
$sudo chage -l user1 Last password change : Nov 12, 2017 Password expires : Jan 12, 2017 Password inactive : never Account expires : Jun 11, 2017 Minimum number of days between password change : 0 Maximum number of days between password change : 90 Number of days of warning before password expires : 7
练习4:锁定和解锁用户帐户
锁定帐户可防止用户使用密码对系统进行身份验证。
UserMod命令可用于锁定具有-l选项的帐户。
sudo usermod -L user1
确认:
$su - user1 Password: su: Authentication failure
稍后可以使用usermod -u命令选项解锁该帐户。
sudo usermod -U user1
作为系统管理员,我们可以使用单个Usermod命令锁定并过期帐户。
这是退出员工的理想选择。
sudo usermod -L -e 2017-02-20 user1
日期必须作为自1970-01-01以来的天数,或者以YYYY-MM-DD格式给出。
练习5:为所有用户设置密码策略
设置所有用户的密码,以从当前日期开始90天过期。
编辑文件/etc/login.defs需要管理权限。
sudo vim /etc/login.defs
将pass_max_days设置为90。
PASS_MAX_DAYS 90
它应该如下所示:
我们可以配置的所有密码老化参数是:pass_max_days最大的天数密码可以使用.pass_min_days密码更改之间允许的最小天数.Pass_min_len在密码到期前给出的天数警告。
编辑文件/etc/login.defs时,默认密码和帐户到期设置将为新用户生效,但不适用于现有用户。