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

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

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

答案1

这是 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

getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1

答案3

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

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

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

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

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

答案4

是否已使用“用户“空密码?

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

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

希望这是准确的

相关内容