Назад | Перейти на главную страницу

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

Как найти пользователя с пустым паролем в 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, чтобы увидеть их.

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

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

вернуть 1 в случае неудачи - пароль не пустой
вернуть 0 в случае успеха - пароль установлен

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