如何在 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