如何在 Linux 中强制用户下次登录时更改密码?
实施密码策略是保护您的 Linux 系统免受网络安全领域未经授权的访问的不可或缺的安全措施。在Linux中,要求用户经常更改密码是提高系统安全性的有效方法。
确保 Linux 系统的安全对于系统管理员来说至关重要,实现这一目标的一种有效方法是实施强制用户定期更改密码的安全措施。本文旨在提供有关如何在 Linux 系统上的用户下次登录期间强制更改密码的指导。
本文将介绍两种可用于强制用户在下次登录 Linux 时修改密码的方法。通过采用这些方法,您可以保证系统的用户始终使用安全密码,从而降低安全漏洞的可能性。
有两种方法可以强制用户在下次登录 Linux 时更改密码 -
方法一:使用Passwd命令
第 1 步 − 打开终端并以 root 用户身份登录或使用 sudo 获取 root 权限。
要使用 passwd 命令使用户的密码过期,您需要具有 root 权限。这可以通过以 root 用户身份登录或使用 sudo 命令获得临时 root 权限来实现。
第 2 步 − 输入以下命令−
passwd --expire username
Linux 中的 passwd 命令是一个允许用户更改帐户密码的工具。但是,“--expire”选项可用于强制用户在下次登录时更改密码。要使用此选项,请将“用户名”替换为您希望其密码过期的用户名。
例如,假设我们想让用户“robin”的密码过期。我们将使用以下命令−
示例
passwd --expire robin
该命令会将用户“robin”的密码过期时间设置为0,这意味着密码已经过期,下次登录时将提示用户更改密码。
第 3 步 − 当用户尝试再次登录时,系统会提示他们输入新密码。
一旦用户“robin”尝试再次登录,系统将提示他们输入新密码。密码可以是字母、数字和特殊字符的任意组合,只要满足系统管理员设置的密码复杂度要求即可。
输出
[root@localhost ~]# passwd --expire robin
passwd: password expiry information changed.
[root@localhost ~]# su - robin
Changing password for user robin.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[robin@localhost ~]$
In the above example, we first logged in as the root user, then used the "passwd --expire robin" command to expire the password for the user "robin". When "robin" tried to log in again, he was prompted to enter a new password. The output shows that the password was successfully changed.
需要注意的是,使用户密码过期是一项临时措施,随后应定期更改密码,以确保用户帐户的安全。
方法二:使用Chage命令
chage命令用于修改用户帐户的密码过期信息。此命令允许管理员指定用户密码何时到期,并在下次登录时强制更改密码。它的工作原理如下:
第 1 步 − 打开终端并以 root 用户身份登录或使用 sudo 获取 root 权限。
在使用 chage 命令修改用户的密码过期信息之前,您需要以 root 用户身份登录或具有 root 权限。这可以通过打开终端并使用 su 或 sudo 命令来实现。
第 2 步 − 使用 chage 命令修改用户帐户的密码到期信息。
要修改用户帐户的密码到期信息并强制在下次登录时立即更改密码,请使用 chage 命令。此命令允许管理员将用户的密码设置为立即过期,从而提示他们在下次登录时更改密码。这是实现此目的的示例命令。
示例
chage --lastday 0 username
输出
[root@localhost ~]# chage --lastday 0 jane
Changing the last password change time for jane
New expiration date is Mar 05, 2023
要使用 chage 命令修改特定用户帐户的密码过期信息,您需要将“username”替换为您希望其密码过期的用户的实际名称。当您使用 chage 命令更改用户的密码过期时间时,您可以添加一个名为“--lastday 0”的选项。此选项使用户的密码立即过期,这意味着他们需要在下次登录时更改密码。您还需要通过将“用户名”替换为用户名来告诉命令要修改哪个用户的帐户。
例如,如果我想让用户“jane”的密码过期,我将使用命令 -
示例
chage --lastday 0 jane
输出
[root@localhost ~]# chage --lastday 0 jane
Changing the aging information for jane
Enter the new value, or press ENTER for the default
Minimum Password Age [0]:
Maximum Password Age [99999]:
Last Password Change (YYYY-MM-DD) [2022-10-15]:
Expiration Date (YYYY-MM-DD) [2022-10-15]: 0
Password inactive after expiration (days) [99999]:
Account expires (YYYY-MM-DD) [never]:
Maximum number of days between password change [99999]:
Number of days of warning before password expires [7]:
执行此命令会将用户“jane”的密码信息设置为立即到期。因此,下次 Jane 尝试登录时,她将被要求更改密码。
第 3 步− 验证密码过期信息是否已修改。
建议执行 chage 命令后验证密码过期信息是否已正确更新。为此,运行以下命令−
示例
chage -l username
输出
$ chage -l jane
Last password change : Feb 28, 2023
Password expires : never
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
将“用户名”替换为您更改密码的用户名。此命令显示用户上次更改密码的时间、下次需要更改密码的时间以及有关密码的其他重要信息。
例如,如果我想检查用户“jane”的密码过期信息,我将使用命令 -
示例
chage -l jane
输出
Last password change : Feb 28, 2023
Password expires : Mar 28, 2023
Password inactive : never
Account expires : never
Minimum number of days between password : 0
Maximum number of days between password : 30
Number of days of warning before password expires : 7
此命令将显示用户“jane”的当前密码到期信息。
第 4 步 −等待用户登录并更改密码。
使用 chage 命令更改用户帐户的密码到期信息后,您应该等待用户登录并重置其密码。下次尝试登录时,系统将提示他们创建新密码。用户输入新密码后,系统将自动更新密码到期信息以反映最近的密码更改。之后,用户可以像往常一样继续使用他们的帐户。
结论
强制用户在下次登录时更改密码是保护 Linux 系统上敏感信息的一项重要安全措施。在本文中,我们探索了两种方法来实现这一目标。第一种方法涉及使用带有 -e 选项的 passwd 命令来使用户的密码过期,而第二种方法使用 chage 命令来修改用户或系统上所有用户的密码过期策略。这两种方法都可以有效地强制用户更改密码,但 chage 命令更适合一次更改多个用户的密码老化策略。管理员应定期使用这些方法来确保用户创建强而安全的密码并保护其 Linux 系统免受未经授权的访问。