Как найти пользователя с пустым паролем в Linux?

13

Как найти пользователя с пустым паролем в Linux?

met78
источник

Ответы:

15

Это более короткая и точная версия ответа АндреКР:

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 '^[^:]*(?=::)'
Приостановлено до дальнейшего уведомления.
источник
8
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
AndreKR
источник
2

В их записи не /etc/shadow/будет хэша пароля. Вы должны войти в систему как root, чтобы видеть их.

sysadmin1138
источник
2

Зашифрованный пароль - это второе поле в / etc / shadow.

Если второе поле пусто, то пароль пуст:

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

!и *неверный пароль (пользователь не может войти):

awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow
ooshro
источник
0

Имеет ли пользователь « пользователь » пустой пароль?

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

верните 1 при ошибке - пароль не пуст.
верните 0 при успехе - пароль установлен

Надеюсь, это точно

LittleEaster
источник