当前位置: 首页 > 科技观察

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

时间:2023-03-15 14:03:11 科技观察

如何在Linux系统中查找所有密码为空的用户作为系统管理员,您必须确保每个用户帐户都有一个强密码。下面我将简单介绍一下如何在Linux中查找密码为空的账户。在进入主题之前,让我们快速回顾一下Shadow文件及其用途。1.DirectoryShadow文件介绍Linux下查找所有未设置密码的账户查找特定状态的密码状态Linux下如何设置账户密码Linux下如何锁定账户Linux下如何解锁账户总结2.Shadow文件在RHEL系统中,用户密码经过哈希处理并存储在名为/etc/shadow的安全文件中。影子密码文件包含用户帐户的用户身份验证信息和密码老化策略详细信息。影子文件归根用户所有,只能由超级用户读取。您可以使用以下命令验证影子文件的所有权和权限:#ls-l/etc/shadow------------1rootroot618Apr707:52/etc/shadow影子文件下面给出示例行的典型结构:user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::你可能已经知道,Shadow文件有九个字段,每个字段都是以冒号隔开。接下来让我们快速浏览一下每个字段。字段1(登录名)-标识登录帐户,与文件/etc/passwd中的相同。Field2(encryptedpassword)-包含哈希加密后的用户对应的密码。此字段开头的感叹号(!)表示用户帐户已锁定。如果此字段为空,则用户没有密码。字段3(上次更改)-此字段显示上次修改密码的时间。如果此字段包含0,则用户将在下次登录时强制更改其密码。字段4(最少天数)-此字段显示在允许用户更改之前必须经过的最少天数(mindays)他们的密码。您可以使用带有-m选项的chage命令来更改此字段的值。字段5(最长天数)-显示用户密码在过期前的最长有效天数(maxdays)。如果该字段为0,则禁用此功能。可以使用带有-M选项的chage命令更改此字段的值。字段6(警告)-表示在密码过期之前用户将被警告更改密码的天数(警告天数)。您可以使用带有-W选项的chage命令或带有-w选项的passwd命令更改此值。字段7(密码过期)-定义用户可以使用过期密码登录的最大允许天数。这可以使用带有-I标志的chage命令或带有-i标志的passwd命令来更改。字段8(帐户到期)-定义用户帐户到期后将不再可用的天数。您可以使用带有-E选项的chage命令更改此字段的值。字段9(保留)-该字段保留供将来使用。如上所述,加密密码存储在影子文件中每个条目的第二个字段中,紧跟在用户名之后。因此,如果影子文件中的第二个字段为空,则用户没有密码。下面,我将向您展示一个查找所有没有密码的用户帐户的示例。3.查找所有没有密码的帐户要检测所有没有密码的本地用户帐户,只需以root身份运行以下命令:#awk-F:'$2==""{print$1,"hasemptypassword!.Pleasesetastrongpassword尽快!!”}'/etc/shadow以下是上述命令的输出示例:ostechnixhasemptypassword!。请尽快设置强密码!!你也可以使用getent命令结合grep和cut命令来识别Linux中的无密码本地用户帐户,命令如下:#getentshadow|grep-Po'^[^:]*(?=::)'也可以使用以下命令:#getentshadow|grep'^[^:]*::'|cut-d:-f1以上所有命令只会列出密码为空的本地用户帐户。如果你想同时列出所有密码为空的账户,下面两条命令可以实现这个功能:#getentshadow|grep-Po'^[^:]*(?=:.?:)'#getentshadow|grep'^[^:]*:.\?:'|cut-d:-f1图1:查找没有密码的账户4.查看特定账户的密码状态以上命令会列出所有没有密码的账户。您还可以使用带有-S标志的passwd命令检查特定用户帐户的密码状态。#passwd-Sostechnix以下是上述命令的示例输出:ostechnixNP2022-04-070999997-1(空密码。)passwd命令将指示给定用户帐户的密码状态。可能的值有:LK——账户被锁定。NP-该帐户没有密码。PS-该帐户有一个有效密码。注意:在基于Debian的系统上,密码状态将分别由L、N、P标识。5、在Linux中设置账号密码可以使用无密码用户登录,但不推荐!您必须设置至少8个字符的强密码,密码必须包含大写字母、小写字母、特殊字符和数字。要在Linux中为用户帐户设置密码,请以root身份执行passwd命令,如下所示:以root身份:#passwdostechnix使用上述命令时,将ostechnix替换为您自己的用户名。现在我们使用passwd命令查看账户的密码状态:#passwd-Sostechnix输出示例如下:ostechnixPS2022-04-070999997-1(Passwordset,SHA512crypt.)图2:设置Linux中的帐户密码在Linux中锁定帐户有时,您想在没有密码的情况下锁定帐户。如果是,首先如上所述找到密码为空的用户,以root身份执行带-l标志的passwd命令锁定该账户。命令如下:#passwd-lostechnix以下是上述命令的输出示例:锁定用户ostechnix.passwd的密码:成功现在让我们再次检查帐户状态:#passwd-Sostechnix输出示例如下如下:ostechnixLK2022-04-070999997-1(Passwordlocked.)从输出可以看出用户已经被锁定,无法再登录系统。您还可以使用带有-L(大写L)标志的usermod命令来锁定用户。#usermod-Lostechnix在Linux中解锁帐户要在Linux中解锁无密码用户,请以root身份执行passwd命令或使用-p执行usermod命令,如下所示:#passwdostechnix输入密码两次以解锁密码。用户密码为空的用户无法使用usermod命令解锁,可以使用usermod-p设置密码来解锁用户的密码。#usermod-postechnix6.总结在本教程中,我们解释了什么是影子文件以及该文件在Linux中的用途。然后我们讨论了在Linux中查找所有没有密码的帐户的各种命令。最后,我们学习了如何为用户设置密码以及如何在Linux中锁定和解锁用户。原文链接:https://ostechnix.com/find-user-accounts-with-empty-password-in-linux/译者介绍赵庆尧,51CTO社区编辑,长期从事驱动开发工作多年年。他的研究兴趣包括安全操作系统和网络安全,并发表了与网络相关的专利。