Ответы:
Это более короткая и точная версия ответа АндреКР:
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 '^[^:]*(?=::)'
В их записи не /etc/shadow/будет хэша пароля. Вы должны войти в систему как root, чтобы видеть их.
Имеет ли пользователь « пользователь » пустой пароль?
getent shadow | grep 'user:\$' | cut -d':' -f 2 | grep '\w' -c -m 1
верните 1 при ошибке - пароль не пуст.
верните 0 при успехе - пароль установлен
Надеюсь, это точно