Linux设置锁定和解锁用户的三种办法

系统 Linux
锁定或解锁用户后,如何验证操作是否成功呢?由于 usermod 命令也作用于 /etc/passwd 文件,可以使用 passwd -S 命令来检查用户的状态。

在多用户操作的服务器中,有时需要锁定(禁用)用户。这可能是由于多个原因,例如某个用户的登录密码被泄露,或者某个用户已经离职,但该用户账户下还有未完成转移的文档。为了归档目的,我们不会立即删除该用户,而只是暂时锁定账户

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

关于 passwd 命令,该命令主要用于管理账户密码,也可以用于锁定用户。passwd命令主要操作的是 /etc/passwd 文件。尽管这个文件可以手动修改,但一般不建议这样做。要使用 passwd 命令锁定用户,可以使用 -l 或 --lock 选项:

passwd -l  username

锁定(或解锁)后,可以使用 passwd 命令的 -S 或 -status 选项来检查用户的当前状态:

passwd -S  username

其输出及说明,本文就不在赘述了。解锁用户,使用 -u 或 –unlock 选项:

passwd -u  username

通过这种方式锁定用户存在一个问题,因为它是作用于 /etc/passwd 文件。因此,被锁定的用户如果设置了通过 SSH 密钥登录,仍然可以通过 SSH 访问。我们将在下一节介绍如何处理这个问题

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

usermod命令主要用于修改 Linux 系统中的用户账户,也可以用于锁定或解锁用户账户。要锁定用户,可以使用 usermod 命令的 -L 选项:

usermod -L  username

解锁用户,使用 -U 选项:

usermod -U  username

锁定或解锁用户后,如何验证操作是否成功呢?由于 usermod 命令也作用于 /etc/passwd 文件,可以使用 passwd -S 命令来检查用户的状态。

不过,既然 usermod 也作用于 /etc/passwd 文件,这意味着被锁定的用户仍然可以通过 SSH 密钥登录。如何解决这个问题呢?有几种方法可以考虑:

  1. 将用户的 shell 更改为 nologin,这样用户将无法登录 shell。关于如何修改 shell,我们将在以后单独介绍,感兴趣的朋友可以先行查阅相关资料。
  2. 为用户设置一个已过期的日期作为账户的过期日期,这样账户也会被锁定。这个日期需要确保在 2024-01-02 和当前日期之间。

usermod -L --expiredate 2024-01-02  username

通过上述方法锁定的用户,解锁的时候,可以使用如下方法:

usermod -U --expiredate ''  username

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

chage 命令用于更改用户的密码到期信息。它还可以设置在特定天数不活动后自动锁定用户。

实际上,上述方法 2 的操作也可以通过以下所示的 chage 命令来实现:

chage -E 1  username

使用上述命令,就可以将过期日期设置为 2024-01-02,可以通过如下方式查看详细信息:

$ sudo chage -l standard
Last password change: Nov 07, 2019
Password expires: never
Password inactive: never
Account expires: Jan 02, 2024
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

责任编辑:武晓燕 来源: 步步运维步步坑
相关推荐

2022-11-18 15:09:29

2019-07-02 17:34:42

2021-04-04 22:56:47

Linux循环用户

2010-01-07 17:50:15

Linux动态库

2011-01-18 15:35:59

jQueryJavaScriptweb

2012-05-08 10:58:50

虚拟桌面用户

2012-05-29 16:30:33

Tomcat内存溢出

2009-12-01 09:18:22

Linux版本

2022-10-28 11:07:03

2009-08-18 16:45:50

Tomcat内存溢出

2022-10-08 09:17:15

Linuxinxi

2018-04-28 05:26:11

2010-05-25 18:50:22

MySQL安装

2009-08-18 22:02:46

vmware虚拟机网络

2010-09-24 19:18:22

SQL索引

2012-12-14 10:16:26

2023-12-16 13:15:00

Linux服务器IP方法

2012-07-17 09:16:16

SpringSSH

2013-04-01 09:55:03

OpenStack存储

2015-09-14 09:31:44

结对设计
点赞
收藏

51CTO技术栈公众号