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

时间:2020-03-05 15:28:51  来源:igfitidea点击:

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

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

请注意,要执行这些更改,则需要通过sudo root或者具有root访问权限。

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

Linux中的passwd命令处理用户帐户的密码。

我们还可以使用此命令锁定用户帐户。

该命令基本上适用于/etc/passwd文件。
我们可以手动修改此文件,但我建议我们。

要锁定用户使用passwd命令,可以以这种方式使用option -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键设置登录)。
我会告诉你如何在下一节处理它。

方法2:锁定和解锁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

使用Chage命令锁定用户在Linux中锁定用户。
让我们在下一节看到它。

方法3:使用Chage命令锁定和解锁用户

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

基本上可以使用这样的呼了票命令与上一节中的UserMod命令所做的。

chage -E 1 username

基本上,我们已将过期日期设置为1970-01-02.
我们可以看到这样的详细信息:

Hyman@theitroad:~$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