¿Cómo encontrar un usuario con contraseña vacía en Linux?
Esta es una versión más corta y más precisa de la respuesta de AndreKR:
sudo getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Solo tiene una llamada cut
y encontrará entradas de cualquiera de los siguientes formularios:
foo:!: ...
bar:*: ...
baz:: ...
Si solo quieres estar verdaderamente vacío:
sudo getent shadow | grep '^[^:]*::' | cut -d: -f1
Si tiene GNU grep
, puede eliminar por cut
completo:
sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'
o
sudo getent shadow | grep -Po '^[^:]*(?=::)'
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
Su entrada /etc/shadow/
no tendrá hash de contraseña. Sin embargo, deberá iniciar sesión como root para poder verlos.
La contraseña cifrada es el segundo campo en / etc / shadow.
Si el segundo campo está vacío, la contraseña está vacía:
awk -F":" '($2 == "") {print $1}' /etc/shadow
!
y *
es una contraseña no válida (el usuario no puede iniciar sesión):
awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow