如何在 Linux 中锁定和解锁用户

在 Linux 中锁定和解锁用户帐户的 3 种方法

您希望在多用户 Linux 环境中禁用用户的原因可能有很多。 也许员工离开了组织,而不是完全删除用户,而是锁定帐户以进行存档。

在本教程中,我将向您展示在 Linux 命令行中锁定用户的三种方法。 我还将讨论如何解锁用户。

请注意,要进行这些更改,您需要 root 或通过 root 访问 sudo.

方法一:使用 passwd 命令锁定和解锁用户

Linux 中的 passwd 命令处理用户帐户的密码。 您还可以使用此命令锁定用户帐户。

该命令基本上适用于 /etc/passwd 文件。 您可以手动修改此文件,但我建议不要这样做。

passwd 命令,您可以通过以下方式使用选项 -l 或 –lock:

passwd -l user_name

使用 passwd 命令验证用户的状态

您可以使用 passwd 命令的选项 -S 或 –status 了解用户是锁定还是解锁。

密码 -S 用户名

查看输出中的第二个字段。 这就是它的意思:

– P 或 PS:密码已设置(用户已解锁)
– L 或 LK:用户被锁定
– N 或 NP:用户不需要密码

下面是 passwd 命令的示例输出:

标准 P 10/14/2019 0 99999 7 -1

要使用 passwd 命令解锁用户,可以使用选项 -u 或 –unlock:

passwd -u user_name

在 Ubuntu 上,您将看到这样的输出,用于锁定和解锁用户:

passwd: password expiry information changed

通过 SSH 登录呢?

以这种方式锁定用户存在一个主要问题。 由于它只适用于 /etc/passwd 文件,因此被锁定的用户仍然可以通过 SSH 密钥登录(如果设置了通过 SSH 密钥登录)。 我将在下一节中向您展示如何处理它。

方法二:使用 usermod 命令锁定和解锁用户

您也可以使用 usermod 命令。 该命令主要用于在 Linux 中修改用户帐户。 您还可以通过使用 usermod 锁定或解锁来修改用户的状态。

要锁定用户,您可以通过以下方式使用 -L 选项:

usermod -L user_name

要解锁用户,您可以使用 -U 选项:

usermod -U user_name

如何验证用户是否被锁定? usermod 命令也适用于 /etc/passwd 文件,因此您可以使用 passwd -S user_name 命令检查用户的状态。

但是 usermod 也适用于 /etc/passwd 文件,所以这意味着被锁定的用户仍然可以通过 SSH 密钥登录,对吧? 这是正确的。 但是有办法克服这个问题。

为了 example,您可以将用户的 shell 更改为 nologin,这将不允许用户登录到 shell。

另一种方法是锁定用户并提供过去的过期日期。 它的作用是在过去的日期禁用该帐户,然后将其锁定。

确保过去的日期在 1970-01-02 和当前日期之间。

usermod -L --expiredate 1970-01-02 user_name

您可以使用以下命令反转它:

usermod -U --expiredate '' user_name

有一种类似的方法可以在 Linux 中使用 chage 命令锁定用户。 让我们在下一节中看到它。

方法三:使用 chage 命令锁定和解锁用户

chage 命令用于更改用户密码到期信息。 它可用于在一定天数不活动后自动锁定非活动用户。

基本上,您在上一节中使用 usermod 命令所做的事情可以使用 chage 命令来实现,如下所示:

chage -E 1 username

基本上,您已将过期日期设置为 1970-01-02。 你可以看到这样的细节:

[email protected]:~$ sudo chage -l standard
Last password change					: Nov 07, 2019
Password expires					: never
Password inactive					: never
Account expires						: Jan 02, 1970
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

您可以删除到期日期,从而以这种方式解锁用户:

chage -E -1 username

到底…

与往常一样,有多种方法可以在 Linux 命令行中完成任务。 我在这里展示了三种在 Linux 中锁定和解锁用户的方法。 您知道更好的方法还是有一些锁定用户的最佳实践建议? 请在评论部分分享它。