如何在Linux中find空密码的用户?
这是AndreKR的答案更短,更准确的版本:
sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
它只有一个电话cut并会find下面的任何forms的条目:
foo:!: ... bar:*: ... baz:: ...
如果你只想真空:
sudo getent shadow | grep '^[^:]*::' | cut -d: -f1
如果你有GNU grep ,你可以完全消除cut :
sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'
要么
sudo getent shadow | grep -Po '^[^:]*(?=::)'
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
它们在/etc/shadow/将没有密码哈希。 不过,您需要以root身份login才能看到它们。
encryption的密码是/ etc / shadow中的第二个字段。
如果第二个字段为空,则密码为空:
awk -F":" '($2 == "") {print $1}' /etc/shadow
! 和*是无效的密码(用户无法login):
awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow