在本教程中,您将学习:首次登录Linux时强制更改密码、更改用户的密码策略、将用户帐户设置为X天后过期、锁定和解锁用户帐户、为所有用户设置密码策略。实施这些策略以更好地安全保护用户帐户。
密码验证的工作方式 当用户尝试登录时,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 它看起来应该像这样:
您可以配置的所有密码参数为: PASS_MAX_DAYS可以使用密码的最大天数。 PASS_MIN_DAYS两次密码更改之间允许的最少天数。 PASS_MIN_LEN可接受的最小密码长度。 PASS_WARN_AGE密码过期前给出的警告天数。 当您编辑文件/etc/login.defs时,默认密码和帐户到期设置将对新用户有效,但对现有用户无效。
相关主题 |