如何在 Linux 命令行中锁定和解锁用户
如何在 Linux 中锁定用户帐户?更重要的是,如何在 Linux 中解锁用户?了解在 Linux 命令行中锁定和解锁用户的各种方法。
在 Linux 中锁定和解锁用户帐户的 3 种方法
您想要在多用户 Linux 环境中禁用用户的原因可能有多种。也许员工离开了组织,而不是完全删除用户,而是锁定帐户以用于存档目的。
在本教程中,我将向您展示在 Linux 命令行中锁定用户的三种方法。我还将讨论如何解锁用户。
请注意,要执行这些更改,您需要root 权限或通过 sudo 拥有 root 访问权限.
方法一:使用passwd命令锁定和解锁用户
Linux 中的 passwd 命令处理用户帐户的密码。您还可以使用此命令来锁定用户帐户。
该命令基本上适用于 /etc/passwd 文件。您可以手动修改此文件,但我建议不要这样做。
要使用 passwd 命令锁定用户,您可以按以下方式使用选项 -l 或 –lock:
passwd -l user_name
使用 passwd 命令验证用户的状态
您可以使用 passwd 命令的 -S 或 –status 选项了解用户是否被锁定或解锁。
passwd -S user_name
查看输出中的第二个字段。它的含义如下:
– 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 密钥登录,对吧?这是正确的。但有一些方法可以克服这个问题。
例如,您可以将用户的 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。您可以看到这样的详细信息:
abhishek@linux:~$ 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 中锁定和解锁用户的方法。您知道更好的方法还是有一些锁定用户的最佳实践建议?请在评论部分分享。