在 Linux 系统中禁用与解禁用户的账号
创始人
2024-03-02 04:25:32
0

总有这样的时候:有时你需要禁用某位 Linux 用户的账号,有时你还需要反过来解禁用户的账号。 本文将介绍一些管理用户访问的命令,并介绍它们背后的原理。

假如你正管理着一台 Linux 系统,那么很有可能将遇到需要禁用一个账号的情况。可能是某人已经换了职位,他们是否还需要该账号仍是个问题;或许有理由相信再次使用该账号并没有大碍。不管上述哪种情况,知晓如何禁用账号并解禁账号都是你需要知道的知识。

需要你记住的一件重要的事是尽管有多种方法来禁用账号,但它们并不都达到相同的效果。假如用户使用公钥/私钥来使用该账号而不是使用密码来访问,那么你使用的某些命令来阻止用户获取该账号或许将不会生效。

使用 passwd 来禁用一个账号

最为简单的用来禁用一个账号的方法是使用 passwd -l 命令。例如:

$ sudo passwd -l tadpole

上面这个命令的效果是在加密后的密码文件 /etc/shadow 中,用户对应的那一行的最前面加上一个 ! 符号。这样就足够阻止用户使用密码来访问账号了。

在没有使用上述命令前,加密后的密码行如下所示(请注意第一个字符):

$6$IC6icrWlNhndMFj6$Jj14Regv3b2EdK.8iLjSeO893fFig75f32rpWpbKPNz7g/eqeaPCnXl3iQ7RFIN0BGC0E91sghFdX2eWTe2ET0:18184:0:99999:7:::

而禁用该账号后,这一行将变为:

!$6$IC6icrWlNhndMFj6$Jj14Regv3b2EdK.8iLjSeO893fFig75f32rpWpbKPNz7g/eqeaPCnXl3iQ7RFIN0BGC0E91sghFdX2eWTe2ET0:18184:0:99999:7:::

在 tadpole 下一次尝试登录时,他可能会使用他原有的密码来尝试多次登录,但就是无法再登录成功了。另一方面,你则可以使用下面的命令来查看他这个账号的状态(-S = status):

$ sudo passwd -S tadpole
tadpole L 10/15/2019 0 99999 7 -1

第二项的 L 告诉你这个账号已经被禁用了。在该账号被禁用前,这一项应该是 P。如果显示的是 NP 则意味着该账号还没有设置密码。

命令 usermod -L 也具有相同的效果(添加 ! 来禁用账号的使用)。

使用这种方法来禁用某个账号的一个好处是当需要解禁某个账号时非常容易。只需要使用一个文本编辑器或者使用 passwd -u 命令来执行相反的操作,即将添加的 ! 移除即可。

$ sudo passwd -u tadpole
passwd: password expiry information changed.

但使用这种方式的问题是如果用户使用公钥/私钥对的方式来访问他/她的账号,这种方式将不能阻止他们使用该账号。

使用 chage 命令来禁用账号

另一种禁用用户账号的方法是使用 chage 命令,它可以帮助管理用户账号的过期日期。

$ sudu chage -E0 tadpole
$ sudo passwd -S tadpole
tadpole P 10/15/2019 0 99999 7 -1

chage 命令将会稍微修改 /etc/shadow 文件。在这个使用 : 来分隔的文件(下面将进行展示)中,某行的第 8 项将被设置为 0(先前为空),这就意味着这个账号已经过期了。chage 命令会追踪密码更改期间的天数,通过选项也可以提供账号过期信息。第 8 项如果是 0 则意味着这个账号在 1970 年 1 月 1 日后的一天过期,当使用上面显示的那个命令时可以用来禁用账号。

$ sudo grep tadpole /etc/shadow | fold
tadpole:$6$IC6icrWlNhndMFj6$Jj14Regv3b2EdK.8iLjSeO893fFig75f32rpWpbKPNz7g/eqeaPC
nXl3iQ7RFIN0BGC0E91sghFdX2eWTe2ET0:18184:0:99999:7::0:
                                                    ^
                                                    |
                                                    +--- days until expiration

为了执行相反的操作,你可以简单地使用下面的命令将放置在 /etc/shadow 文件中的 0 移除掉:

% sudo chage -E-1 tadpole

一旦一个账号使用这种方式被禁用,即便是无密码的 SSH 登录也不能再访问该账号了。


via: https://www.networkworld.com/article/3513982/locking-and-unlocking-accounts-on-linux-systems.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

如何在CentOS系统中更...
在服务器管理中,系统账户的密码安全直接影响整体系统的防御能力,本文...
2025-03-08 06:23:12
套壳还是创新?Manus搅...
AI圈的引爆点正从底座模型向上游移,这次来到了应用端——一个名为M...
2025-03-07 23:21:54
百亿基金加码,深圳如何构建...
文/林典驰 2月23日,深圳宣布,将设立100亿元人工智能和机器人...
2025-02-27 23:19:50
如何在CentOS系统上创...
3、设置用户权限 权限这个东西可重要啦,就像家里的各个房间,有些房...
2025-02-27 10:49:00
借力AI逆袭登顶行业新龙头...
春节期间Deepseek横空出世,再一次掀起全民关于AI的讨论热潮...
2025-02-24 18:45:48
北京朝阳区一银行发现大额资...
不久前的一天上午,朝阳公安分局酒仙桥派出所接到某银行电话报警,称该...
2025-02-10 22:19:25

热门资讯

使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
Bazzite:专为 Stea... 为 Linux 桌面或者 Steam Deck 做好游戏准备,听起来都很刺激!对于一个专为 Linu...
Motrix:一个漂亮的跨平台... 一个开源的下载管理器,提供了一个简洁的用户界面,同时提供了跨平台操作的所有基本功能。在这里了解关于它...
Bash 脚本中如何使用 he... here 文档 here document (LCTT 译注:here 文档又称作 heredoc ...
使用 dialog 和 jq ... 为何选择文字用户界面(TUI)?许多人每日都在使用终端,因此, 文字用户界面 Text User I...