Как найти пользователя с пустым паролем в Linux?
Это более короткая и точная версия ответа AndreKR:
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.
Если второе поле пусто, значит пароль пустой:
awk -F":" '($2 == "") {print $1}' /etc/shadow
!
и *
неверный пароль (пользователь не может войти в систему):
awk -F":" '($2 == "!" || $2 == "*") {print $1}' /etc/shadow
Их вступление в /etc/shadow/
не будет содержать хеш-пароля. Однако вам нужно будет войти в систему как root, чтобы увидеть их.