如何在 Linux 中使用 passwd 命令处理帐户密码

安全技术已经取得了长足的进步,但古老的密码仍然是用于保护数据的最常用工具之一。

passwd 命令可让您更改 Linux 中的用户密码,但它可以做的远不止这些。 您可以锁定(和解锁)用户。 您可以让用户在下次登录时更改密码等等。

在本教程中,我将向您展示一些有用的 passwd 命令示例,您可以将其用作系统管理员。

passwd 命令的实际例子

passwd 命令适用于 /etc/passwd 文件。 您所做的更改会反映在此处。

Linux中的密码存储在哪里? 它以加密形式存储在 /etc/shadow 文件中。

让我们看一下 passwd 命令的一些示例。

1.更改自己的密码

要更改当前用户的密码,即您自己的帐户密码,只需输入 passwd 命令,不带任何选项。

passwd

您将被要求首先使用当前密码:

[email protected]:~$ passwd
Changing password for christopher.
(current) UNIX password: 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

如果您输入当前密码作为新密码,系统将抛出错误信息,提示密码未更改,并再次提示您输入新密码。

2.创建root密码

许多 Linux 发行版都没有设置 root 密码。 访问 root 帐户的唯一方法是通过 sudo 或 su 命令。 这是因为像“toor”这样的默认密码会使系统容易受到攻击者的攻击。

你一定是一个 sudo 用户创建root密码:

sudo passwd root

这是输出:

[email protected]:~$ sudo passwd root
[sudo] password for christopher:             
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

这是正确配置用户访问权限至关重要的众多原因之一。 您不希望所有用户都能够更改您的 root 密码!

3.更改其他用户的密码

您可以在 Linux 中以 root 身份使用 passwd 命令更改用户密码或使用 sudo.

sudo passwd user_name

显然不会要求您输入旧密码。 毕竟,您正在重置密码,因为 admin,你应该能够做到这一点。

[email protected]:/home/christopher# passwd christopher
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

4.检查密码状态

您可以像这样检查用户密码的状态:

sudo passwd -S user_name

这是一个 example:

[email protected]:~$ passwd -S christopher
christopher P 06/13/2020 0 99999 7 -1

让我们回顾一下这些信息。 我将它组织成一个表格,以便于阅读。 然后我将讨论某些值的含义。

用户名地位上次更改日期最低年龄最大年龄警告期不活动期
克里斯托弗2020 年 6 月 13 日0999997-1

我们先来看状态栏。 以下是该字段的可能选项。

地位描述
可用密码
NP没有密码
大号锁定密码

为设置密码规则的参数保留了一些特殊的数字。

特殊年龄数字描述
9999永不过期
0可以随时更改
-1不活跃

在这里您可以看到警告期设置为 7 天,但由于禁用了非活动期且期限设置为永不过期,因此不会出现警告。

5.检查所有帐户的密码状态

您还可以检查系统上所有用户帐户的密码状态:

sudo passwd -Sa

6.强制用户在下次登录时更改密码

您可以使用 -e 选项立即使用户密码过期。 这将强制用户在下次登录时更改密码。

sudo passwd -e user_name

以下是强制到期的样子:

[email protected]:/home/christopher# passwd -e christopher
passwd: password expiry information changed.

现在您可以检查状态以记录更改:

[email protected]:/home/christopher# passwd -S christopher
christopher P 01/01/1970 0 99999 7 -1

如您所见,密码设置日期已更改为“01/01/1970”。 这个日期在历史上与 Unix 系统有关,因为它是“时代“ 日期。 这基本上意味着该日期是历史上的第 0 天(以 32 位为单位) Unix.

您已成功使密码过期。 下次我的帐户登录时,它将被强制更改为不同的密码。

7.锁定或解锁用户帐户

passwd 命令的 -l 选项允许您在 Linux 中锁定用户帐户:

sudo passwd -l user_name

一旦您在用户帐户上使用它,密码将不再用于授予访问权限。

[email protected]:/home/christopher# passwd -l christopher
passwd: password expiry information changed.

如前所述,您可以使用 -S 选项确认用户密码的状态。 L 代表锁定输出。

[email protected]:/home/christopher# passwd -S christopher
christopher L 06/13/2020 0 99999 7 -1

解锁用户帐户同样简单。 使用 -u 选项解锁用户:

[email protected]:/home/christopher# passwd -u christopher
passwd: password expiry information changed.

您可以确认状态。 输出中的 P 表示可用密码,即密码可以与帐户一起使用。

[email protected]:/home/christopher# passwd -S christopher
christopher P 06/13/2020 0 99999 7 -1

8.从帐户中删除密码并使其无密码

我没有看到任何实际用例,但您可以删除某个帐户的密码。 这样,该帐户就不需要密码来访问系统。 这对安全性不利。

sudo passwd -d user_name

结论

您也可以使用 -n 选项强制用户在 N 天后更改密码。 但是手动这样做是浪费时间。 相反,您应该正确配置系统的密码策略,使其适用于所有用户帐户。

您始终可以使用 -h 选项查看所有可用选项。

我希望本教程对您开始在 Linux 中使用 passwd 命令有所帮助。

与往常一样,我们很乐意听取读者关于他们感兴趣的内容的意见。请在下方发表评论并与我们分享您的想法!