Как найти пользователя с пустым паролем в Linux?
13
Это более короткая и точная версия ответа АндреКР:
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 '^[^:]*(?=::)'
getent shadow | cut -d: -f1-2 | grep ':$' | cut -d: -f1
В их записи не /etc/shadow/
будет хэша пароля. Вы должны войти в систему как root, чтобы видеть их.
Зашифрованный пароль - это второе поле в / etc / shadow.
Если второе поле пусто, то пароль пуст:
awk -F":" '($2 == "") {print $1}' /etc/shadow
!
и *
неверный пароль (пользователь не может войти):
awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow