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

Хэши паролей кикстарта от EL 6 и 7 не работают в 8

Благодаря ответам на этот вопрос, Я успешно создавал файлы кикстарта для Scientific Linux 6 и 7 последние 5 лет. Однако сейчас мы начинаем создавать несколько тестовых систем с CentOS 8 и сталкиваемся с некоторыми проблемами.

Несмотря на использование одного и того же метода для генерации хэшей (или, действительно, повторное использование тех же самых хэшей), пароли для пользователей не устанавливаются правильно. Мне не удалось найти никакой документации, предполагающей изменение между EL 7 и 8.

Вот тестовый пользователь, которого я создаю в файле Kickstart:

user --homedir=/var/ftp --name=A3857275828 --password=$6$J52QJaSjIt8GGqRS$4YyusOJ5EtpikCdwgXJrorW7XyiLRCT.jjRZsHLv04ZV7ng8wTdrwFUF2u5QXGWiEmDgu/g9RpXxLKPoRD4Kh0 --iscrypted --shell=/usr/sbin/nologin --uid=5001 --gid=5001

Пароль должен быть 9282759601013452 но вход в систему не выполняется, пока я вручную не изменю пароль с помощью passwd утилита. Я вижу такие же неудачи на все непривилегированные учетные записи созданы, но пароль root работает нормально. Вход на основе пароля был протестирован с использованием как SSH, так и FTP (vsftpd при поддержке PAM).

/var/log/anaconda/journal.log ничего интересного в процессе настройки не показывает:

Jun 26 20:52:17 test.test.local anaconda[1946]: program: Running... useradd -R /mnt/sysimage -g 5001 -d /var/ftp -M -s /usr/sbin/nologin -u 5001 A3857275828
Jun 26 20:52:17 test.test.local useradd[35591]: new user: name=A3857275828, UID=5001, GID=5001, home=/var/ftp, shell=/usr/sbin/nologin

Запись в /etc/shadow имеет тот же хеш, который указан в файле кикстарта:

A3857275828:$6$J52QJaSjIt8GGqRS$4YyusOJ5EtpikCdwgXJrorW7XyiLRCT.jjRZsHLv04ZV7ng8wTdrwFUF2u5QXGWiEmDgu/g9RpXxLKPoRD4Kh0::0:99999:7:::

И после обновления с passwd, это все еще действующий хеш SHA-512:

A3857275828:$6$SP6IoLdZemXHZbxp$E3/Owe7mciCkeuHdiX4ZnZDUWmTz3nDqa885Rnc3rHMZcPharyX0QSdsUTq3gMneSNsmD1V.FmRf5HCY.uZqH0:18452:0:99999:7:::

Единственный другой файл, который затрагивается во время обновления пароля, - это /var/lib/sss/mc/passwd. Однако я не использую authselect в моем файле кикстарта и authselect current говорит: «Существующей конфигурации не обнаружено». Из того, что я читал, это должно означать, что sssd не используется (в любом случае, насколько я понимаю, он используется только для внешней аутентификации).

Конфигурация PAM не изменилась по умолчанию. Это /etc/pam.d/password-auth:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authselect is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so try_first_pass nullok
auth        required      pam_deny.so

account     required      pam_unix.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so try_first_pass use_authtok nullok sha512 shadow
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so

Я добавил debug возможность pam_unix.so но я не получаю от этого многословия:

Jul 10 17:00:06 pbxtest login[972]: pam_unix(login:auth): username [admin] obtained
Jul 10 17:00:08 pbxtest login[972]: pam_unix(login:auth): authentication failure; logname=LOGIN uid=0 euid=0 tty=tty1 ruser= rhost=  user=admin
Jul 10 17:00:10 pbxtest login[972]: FAILED LOGIN 1 FROM tty1 FOR admin, Authentication failure

Любые мысли о том, почему я не могу войти в систему с ожидаемым паролем, пока не установлю его с помощью passwd?

Для меня звучит как SSSD. Можете ли вы показать свой /etc/nsswitch.conf вместе с /etc/sssd/sssd.conf плюс systemctl status sssd?

У вас также установлена ​​оболочка / usr / sbin / nologin, поэтому пользователи не смогут войти в систему (хотя они должны иметь возможность аутентифицироваться).

Локальные пользователи кэшируются SSSD