如何在Linux中找到密码为空的用户?


13

如何在Linux中找到密码为空的用户?

Answers:


15

这是AndreKR答案的更简短,更精确的版本:

sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

它只有一个调用cut,并将找到以下任何形式的条目:

foo:!: ...
bar:*: ...
baz:: ...

如果您只想真正清空:

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

如果您具有GNU grep,则可以cut完全消除:

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

要么

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


2

他们的输入/etc/shadow/将没有密码哈希。不过,您需要以root用户身份登录才能看到它们。


2

加密的密码是/ etc / shadow中的第二个字段。

如果第二个字段为空,则密码为空:

awk -F":" '($2 == "") {print $1}' /etc/shadow

!*密码无效(用户无法登录):

awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow

0

用户“ user ” 是否有空密码?

getent shadow | grep 'user:\$' | cut -d':' -f 2 | grep '\w' -c -m 1  

失败返回1-密码不为空
成功返回0-设置密码

希望这是准确的

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.