文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何查找Linux系统中密码为空的所有用户

2024-12-02 01:33

关注

译者 | 赵青窕

最糟糕的密码不是弱密码,而是根本没有密码。作为系统管理员,您必须确保每个用户帐户都有一个强密码。接下来我将简要的解释如何在 Linux 中查找密码为空的帐户。

在进入主题之前,让我们快速回顾一下Shadow文件及其用途。

1.目录

2.Shadow文件

在 RHEL 系统中,用户密码经过哈希处理并存储在名为 /etc/shadow 的安全文件中。Shadow密码文件包含用户帐户的用户身份验证信息和密码过期策略(password aging)的详细信息。

Shadow文件归 root 用户所有,且只有超级用户才能读取。您可以使用以下命令验证Shadow文件的所有权和权限:

#  ls  -l /etc/shadow 
---------- 1 root root 618 Apr 7 07:52 /etc/shadow

下面给出了影子文件中示例行的典型结构:

user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::

您可能已经知道,Shadow文件有九个字段,每个字段间采用冒号分隔。

接下来我们快速浏览一下每个字段。

如上所述,加密后的密码存储在Shadow文件中每个条目的第二个字段中,就在用户名之后。

因此,如果影子文件中的第二个字段为空,则用户没有密码。下面,我向您展示一个查找所有无密码用户帐户的示例。

3.查找所有没有密码的账户

要检测所有没有密码的本地用户帐户,只需以 root 用户身份运行以下命令:

# awk -F: '$2 == "" { print $1, "has empty password!. Please set a strong password ASAP!!" }' /etc/shadow

下面是上述命令的输出示例:

ostechnix has empty password!. Please set a strong password ASAP!!

您还可以使用 getent 命令,同时结合 grep 和 cut 命令来识别 Linux 中的无密码的本地用户帐户,其命令如下所示:

# getent shadow | grep -Po '^[^:]*(?=::)'

也可以采用下面的命令:

# getent shadow | grep '^[^:]*::' | cut -d: -f1

以上所有命令将仅列出密码为空的本地用户帐户。如果要同时列出所有密码为空的帐户,下面的两个命令都可以实现该功能:

# getent shadow | grep -Po '^[^:]*(?=:.?:)'
# getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

图 1:查找无密码的账户

4.查看特定账户的密码状态

上述命令将列出所有没有密码的帐户。您还可以使用带有 -S 标志的 passwd 命令检查特定用户帐户的密码状态。

# passwd -S ostechnix

下面是一个上述命令的输出示例:ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)

passwd命令将指示给定用户帐户的密码状态。可能的值是:

注意:在基于 Debian 的系统中,密码状态将分别用L、N、P来标识。

5.在Linux中设置账户密码

您可以作为无密码用户登录,但并不推荐!您必须设置至少包含 8 个字符的强密码,且密码中要包括大写字母、小写字母、特殊字符和数字。

要在 Linux 中为用户帐户设置密码,请以 root 用户身份执行passwd 命令,如下所示:

作为根用户:

# passwd ostechnix

使用上述命令时,请将ostechnix 替换为您自己的用户名。

现在我们用passwd命令来检查帐户的密码状态:

# passwd -S ostechnix

输出示例如下:

ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)

图 2:在Linux中设置账户密码

在Linux中锁定账户

有时,您想要锁定一个没有密码的账户。如果是这样,首先如上所述找到密码为空的用户,以root用户的身份执行带有 -l 标志的 passwd 命令来锁定账户,其命令如下所示:

# passwd -l ostechnix

下面是上述命令的输出示例:

Locking password for user ostechnix.

passwd: Success

现在我们再来检查下帐户的状态:

# passwd -S ostechnix

其输出示例如下:

ostechnix LK 2022-04-07 0 99999 7 -1 (Password locked.)

从输出情况可以看出用户已被锁定,且不能再登录系统了。

您还可以使用带有 -L(大写 L)标志的 usermod 命令来锁定用户。

# usermod -L ostechnix

在Linux中解锁账户

要在 Linux 中解锁无密码用户,请以root身份执行 passwd 命令或带有-p的usermod命令,其命令如下:

# passwd ostechnix

输入两次密码以解锁密码。

使用 usermod 命令解锁用户密码为空的用户是不可能的,您可以使用 usermod -p 设置密码来解锁用户的密码。

# usermod -p <password-here> ostechnix

6.总结

在本教程中,我们解释了什么是shadow文件以及该文件在 Linux 中的用途。然后,我们讨论了在 Linux 中查找所有没有密码帐户的各种命令。最后,我们学习了如何为用户设置密码,以及如何在 Linux 中锁定和解锁用户。

原文链接:https://ostechnix.com/find-user-accounts-with-empty-password-in-linux/

译者介绍

赵青窕,51CTO社区编辑,从事多年驱动开发。研究兴趣包含安全OS和网络安全领域,发表过网络相关专利。

来源:51CTO技术栈内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯