如何查询linux系统中所有用户的用户名和密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查询linux系统中所有用户的用户名和密码相关的知识,希望对你有一定的参考价值。

比如我知道我的root用户密码,但是系统中还有5个一般用户,如何查询这5个用户的用户名和密码

1、用户名和密码的存储位置

存储帐号的文件:/etc/passwd

存储密码的文件:/etc/shadow


2、可以使用cat、more、head、tail以及vim等命令查看或者修改,如下图所示:

 比如要查找系统中admin普通用户的密码,则执行:

cat /etc/shadow | grep "admin"


3、注意:/etc/shadow文件中的密码不是明文密码。如上图所示,第1个“:”号后面的即为“口令”字段,存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合./0-9A-Za-z中的字符,则对应的用户不能登录。


所以通过/etc/shadow获取的只是密码加密后的Hash散列值,要获取明文密码,需要自己进行破解。

参考技术A

查询linux系统中所有用户的用户名和密码的方法如下:

1、输入“cat /etc/passwd”命令查看所有的用户信息。

2、输入“cat /etc/passwd|grep 用户名”命令,用于查找某个用户。

3、输入“cat /etc/group”命令,用于查看所有组信息。

4、输入“cat /etc/group|grep 组名”命令,用于查找某个用户组。

5、输入“groups” 查看当前登录用户的组内成员;“groups test” 查看test用户所在的组,以及组内成员;“whoami”查看当前登录用户名。

参考技术B

密码是看不到的,即使是root 也不能查看,只能修改,如何查看用户名 很容易 ,grep bash /etc/passwd 就可以得到所有的普通用户了 。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。

参考技术C 密码是看不到的,即使是root 也不能查看,只能修改

如何查看用户名 很容易

grep bash /etc/passwd

就可以得到所有的普通用户了
参考技术D finger [-lmsp][帐号名称...]本回答被提问者采纳

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

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

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

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

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文件有九个字段,每个字段间采用冒号分隔。

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

字段1(登录名)- 标识了一个登录帐号,同文件/etc/passwd中的相同。

字段2(加密后密码) -包含用户对应的采用散列加密方式加密后的密码。如果此字段开头有一个感叹号 (!),则表示该用户帐户已被锁定。如果此字段为空,则该用户没有密码。

字段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(保留)- 该字段保留供将来使用。

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

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

查找所有没有密码的账户

要检测所有没有密码的本地用户帐户,只需以 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

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

查看特定账户的密码状态

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

# passwd -S ostechnix

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

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

LK – 该帐户被锁定。

NP - 该帐户没有密码。

PS – 该帐户有一个可用的密码。

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

在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.)

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

在Linux中锁定账户

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

# passwd -l ostechnix

下面是上述命令的输出示例:Locking password for user ostechnix.passwd: Success现在我们再来检查下帐户的状态:

# passwd -S ostechnix

在Linux中解锁账户

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

# passwd ostechnix

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

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

# usermod -p  ostechnix

总结 

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


以上是关于如何查询linux系统中所有用户的用户名和密码的主要内容,如果未能解决你的问题,请参考以下文章

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

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

如何查看Linux中各个用户的历史操作命令

Linux中如何创建管理及查询用户和组

Linux中用户管理详解

linux:如何修改用户的密码