如何在Linux中锁定和解锁用户
在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