在Linux中配置用户密码到期策略

时间:2020-02-23 14:37:55  来源:igfitidea点击:

在本教程中,我们将学会为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时,默认密码和帐户到期设置将为新用户生效,但不适用于现有用户。