通过终端管理密码相对简单。在 Linux 中,你可以使用 passwd 实用程序管理用户密码,该实用程序旨在管理密码。

在本指南中,我们还将学习该passwd命令的一些高级参数,这将帮助你更有效地使用它并让你的生活更轻松。

请记住,你只能以普通用户的身份管理你的密码。但是,root 用户和具有 sudo 权限的用户可以管理其他用户的密码并定义如何使用密码。

如何更改你的用户密码

在 Linux 中,任何用户都可以随时更改其密码。要更改你自己用户的帐户密码,请运行 passwd 不带任何参数的命令:

[linuxmi@fedora www.linuxmi.com]$ passwd
更改用户 linuxmi 的密码 。
当前的密码:
新的密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。

系统将要求你提供当前密码。然后,如果你的密码正确,该命令将提示你输入并确认你的新密码。

如何更改其他用户的密码

如果你是一个拥有许多用户的系统管理员,那么用户有时会忘记他们的密码,你或具有 sudo 权限的人将需要重置他们的密码。

再一次,正如我们在介绍中所说,只有 root 用户和具有 sudo 访问权限的用户才能更改另一个用户帐户的密码。

因此,下面的示例假设你以具有 sudo 权限的用户身份登录。

运行passwd命令,后跟用户名,以更改另一个用户帐户的密码。

例如,要更改名为 的用户的密码linux,请使用以下命令:


[linuxmi@fedora www.linuxmi.com]$ sudo passwd linux
更改用户 linux 的密码 。
新的密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。


系统只会要求你输入并确认新用户的密码。

该passwd命令不会要求你输入旧密码,因为你以具有 sudo 权限的用户身份执行。因此,你可以更改任何用户的密码,而无需知道旧密码。

如何在 Linux 中强制用户更改密码

默认情况下,在 Linux 中,密码设置为永不过期。因此,除了设置或更改用户密码外,该passwd命令还可用于强制用户在下次登录时更改密码。

为此,必须首先将密码标记为过期。这可以通过在命令中使用-e( --expire) 选项来实现passwd,后跟我们要将密码标记为过期的用户名。

例如,要将名为 的用户的密码更改为已过期linux,请使用以下命令:


[linuxmi@fedora www.linuxmi.com]$ sudo passwd -e linux
[sudo] linuxmi 的密码:
正在终止用户 linux 的密码。
passwd: 操作成功


接下来,在chage命令的帮助下,我们可以验证用户 linux 的密码是否过期。最后,该chage 命令用于查看和更改用户密码到期信息。


[linuxmi@fedora www.linuxmi.com]$ sudo chage -l linux
最近一次密码修改时间          :密码必须更改
密码过期时间          :密码必须更改
密码失效时间          :密码必须更改
帐户过期时间            :从不
两次改变密码之间相距的最小天数    :0
两次改变密码之间相距的最大天数    :99999
在密码过期之前警告的天数  :7


从上面的输出可以看出,用户的密码需要修改。因此,当用户linux再次尝试登录时,会提示他更改密码才能访问 shell。

如何在 Linux 中删除用户密码

如果要使用户帐户无密码,可以在命令中使用-d( --delete) 选项。passwd这是禁用帐户密码的快速方法。

例如,键入以下命令以删除名为 的用户的用户密码linux:


[linuxmi@fedora www.linuxmi.com]$ sudo passwd -d linux
清除用户的密码 linux。
passwd: 操作成功


上面的命令删除用户的密码(使其为空)。虽然这是可能的,并且你可以拥有一个没有密码的帐户,但不建议这样做,因为任何人都只能输入帐户用户名才能访问系统。

如你所见,系统不再需要密码来对用户进行身份验证linux。

如何在 Linux 中禁用用户密码

你可以通过锁定帐户密码来阻止用户登录。使用添加了( ) 选项的passwd命令,后跟用户名。-l--lock


[linuxmi@fedora www.linuxmi.com]$ sudo passwd -l linux
锁定用户 linux 的密码 。
passwd: 操作成功


该-l选项通过将密码更改为与可能的加密值不匹配的值来禁用密码。结果,用户将无法登录。

因此,当用户linux下次尝试登录时,他们的密码被拒绝,并且他们收到一个身份验证错误。

当然,如果用户通过基于公钥/私钥交换的无密码 SSH 连接linux进行身份验证,则禁用密码不会阻止他对系统的访问。

因此,另外,设置用户 shell以nologin避免安全问题也是一个好主意:

[linuxmi@fedora www.linuxmi.com]$ sudo usermod -s /usr/sbin/nologin linux

你可以使用-u( --unlock) 开关解锁用户linux帐户。


[linuxmi@fedora www.linuxmi.com]$ sudo passwd -u linux
解锁用户 linux 的密码。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)


然后将其登录 shell 重置回/bin/bash。


[linuxmi@fedora www.linuxmi.com]$ sudo usermod -s /bin/bash linux


检查用户密码的状态

在审计和内务管理方面,检查用户密码的状态对于系统管理员来说是一个有价值的工具。

因此,让我们检查 user 的用户密码的状态linux。首先,打开终端并使用( ) 开关运行passwd命令。-S--status


[linuxmi@fedora www.linuxmi.com]$ sudo passwd -S linux
linux LK 2022-04-17 0 99999 7 -1 (密码已被锁定。)
如你所见,状态信息由七个字段组成。因此,让我们一一分解它们。
第一个字段是用户的登录名。
第二个字段指示用户帐户是否具有锁定密码 (L)、没有密码 (NP) 或具有可用密码 (P)。
第三个字段给出了最后一次密码更改的日期。
第四个字段是可以更改之前的最短密码生命周期。
第五个字段是必须更改之前的最长密码生命周期。
第六个字段是密码有效期到期前用户将开始收到警告的天数。
第七个字段是禁用用户时密码有效期到期后的天数。