Respuestas:
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 cuty 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 cutcompleto:
sudo getent shadow | grep -Po '^[^:]*(?=:.?:)'
o
sudo getent shadow | grep -Po '^[^:]*(?=::)'
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
¿Tiene el usuario " usuario " una contraseña vacía?
getent shadow | grep 'user:\$' | cut -d':' -f 2 | grep '\w' -c -m 1
devuelve 1 en caso de error: la contraseña no está vacía
devuelve 0 en caso de éxito: se establece una contraseña
Espero que esto sea exacto