云网牛站
所在位置:首页 > Linux安全 > 在Linux系统中配置用户密码时效/到期策略

在Linux系统中配置用户密码时效/到期策略

2020-02-13 16:00:30作者:乐时稿源:云网牛站

在本教程中,您将学习:首次登录Linux时强制更改密码、更改用户的密码策略、将用户帐户设置为X天后过期、锁定和解锁用户帐户、为所有用户设置密码策略。实施这些策略以更好地安全保护用户帐户。

在Linux系统中配置用户密码时效/到期策略

 

密码验证的工作方式

当用户尝试登录时,Linux系统会在/etc/shadow文件中查找该用户的条目,将该用户的salt与输入的未加密密码结合在一起,并使用指定的哈希算法对其进行加密。如果结果与加密的哈希匹配,则用户输入正确的密码,如果结果与加密的哈希不匹配,则用户输入了错误的密码,登录尝试失败。参考:掌握Linux系统中的/etc/shadow文件格式和输入示例

您将学会:

首次登录时强制更改密码。

每X天强制更改一次密码。

将用户帐户设置为从当日起X天到期。

在开始之前,我将为此练习创建一个用户帐户。

sudo useradd user1

sudo passwd  user1

您将通过示例了解相关的操作。

 

示例1:首次登录时强制更改密码

要为首次登录的用户强制更改密码,请使用以下命令:

sudo chage -d 0 user1

如果您以user1身份登录,系统将提示您更改密码:

$ ssh user1@localhost

Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

user1@localhost's password:

You are required to change your password immediately (administrator enforced)

Last login: Wed Feb 12 06:48:43 2020 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 user1@localhost

Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.

user1@localhost's password:

Last login: Wed Feb 12 06:48:53 2020 from ::1

[user1@localhost ~]$ exit

logout

Connection to localhost closed.

 

示例2:更改用户的密码策略

现在,让我们设置一个密码策略,使其每90天需要一个新密码:

sudo chage -M 90 user1

确认密码策略设置成功:

$ sudo chage -l user1

Last password change : Feb 12, 2020

Password expires : May 12, 2020

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天后过期

我们将user1帐户设置为从当日起120天过期。

从当前日期获取日期和时间120天:

$ date -d "+120 days" +%F

2020-06-11

现在,将帐户设置为在上面显示的日期到期:

sudo chage -E 2020-06-11 user1

验证帐户到期日期是否已成功设置:

$ sudo chage -l user1

Last password change  : Feb 12, 2020

Password expires  : May 12, 2020

Password inactive  : never

Account expires  : Jun 11, 2020

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

参考:使用passwd、usermod命令在Linux中锁定和解锁用户帐户

确认:

$ su - user1

Password:

su: Authentication failure

以后可以使用usermod -U命令选项将帐户解锁:

sudo usermod -U user1

作为系统管理员,您可以使用一个usermod命令锁定和终止帐户,这是离职员工的理想选择:

sudo usermod -L -e 2020-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

它看起来应该像这样:

在Linux系统中配置用户密码时效/到期策略

您可以配置的所有密码参数为:

PASS_MAX_DAYS可以使用密码的最大天数。

PASS_MIN_DAYS两次密码更改之间允许的最少天数。

PASS_MIN_LEN可接受的最小密码长度。

PASS_WARN_AGE密码过期前给出的警告天数。

当您编辑文件/etc/login.defs时,默认密码和帐户到期设置将对新用户有效,但对现有用户无效。

 

相关主题

在Ubuntu/Debian系统中强制执行强大的用户密码策略

精选文章
热门文章