在 Kickstart 中创建的用户无法进行身份验证

mik*_*n32 5 password kickstart centos authentication rhel8

感谢这个问题的答案,在过去的 5 年里我一直很高兴为 Scientific Linux 6 和 7 生成 Kickstart 文件。然而,我们现在开始使用 CentOS 8 构建一些测试系统,并遇到了一些问题。

\n

尽管使用相同的方法来生成哈希值(或者实际上,重复使用完全相同的哈希值),但用户的密码设置不正确。我找不到任何表明 EL 7 和 8 之间发生变化的文档。

\n

这是我在 Kickstart 文件中创建的测试用户:

\n
user --homedir=/var/ftp --name=A3857275828 --password=$6$J52QJaSjIt8GGqRS$4YyusOJ5EtpikCdwgXJrorW7XyiLRCT.jjRZsHLv04ZV7ng8wTdrwFUF2u5QXGWiEmDgu/g9RpXxLKPoRD4Kh0 --iscrypted --shell=/usr/sbin/nologin --uid=5001 --gid=5001\n
Run Code Online (Sandbox Code Playgroud)\n

密码应该是,9282759601013452但登录失败,直到我使用该passwd实用程序手动更改密码。我在创建的所有非特权帐户上看到相同的失败,但root 密码工作正常。基于密码的登录已使用 SSH 和 FTP(由 PAM 支持的 vsftpd)进行了测试。

\n

/var/log/anaconda/journal.log在设置过程中没有显示任何有趣的内容:

\n
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\nJun 26 20:52:17 test.test.local useradd[35591]: new user: name=A3857275828, UID=5001, GID=5001, home=/var/ftp, shell=/usr/sbin/nologin\n
Run Code Online (Sandbox Code Playgroud)\n

中的条目/etc/shadow与 Kickstart 文件中指定的哈希值相同:

\n
A3857275828:$6$J52QJaSjIt8GGqRS$4YyusOJ5EtpikCdwgXJrorW7XyiLRCT.jjRZsHLv04ZV7ng8wTdrwFUF2u5QXGWiEmDgu/g9RpXxLKPoRD4Kh0::0:99999:7:::\n
Run Code Online (Sandbox Code Playgroud)\n

使用 更新后passwd,它仍然是有效的 SHA-512 哈希值:

\n
A3857275828:$6$SP6IoLdZemXHZbxp$E3/Owe7mciCkeuHdiX4ZnZDUWmTz3nDqa885Rnc3rHMZcPharyX0QSdsUTq3gMneSNsmD1V.FmRf5HCY.uZqH0:18452:0:99999:7:::\n
Run Code Online (Sandbox Code Playgroud)\n

密码更新期间唯一触及的其他文件是/var/lib/sss/mc/passwd. 但是,我没有authselect在 Kickstart 文件中使用,并authselect current显示“未检测到现有配置”。根据我的阅读,这应该意味着 sssd 不适用(无论如何,据我所知,它仅用于外部身份验证。)

\n

PAM 配置与默认设置一样,我已经添加了该debug选项pam_unix.so,但没有从中获得太多详细信息:

\n
Jul 10 17:00:06 pbxtest login[972]: pam_unix(login:auth): username [admin] obtained\nJul 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\nJul 10 17:00:10 pbxtest login[972]: FAILED LOGIN 1 FROM tty1 FOR admin, Authentication failure\n
Run Code Online (Sandbox Code Playgroud)\n

如果我误解了 SSSD,这里是/etc/nsswitch.conf

\n
passwd:      sss files systemd\nshadow:     files sss\ngroup:       sss files systemd\nhosts:      files dns myhostname\nservices:   files sss\nnetgroup:   sss\nautomount:  files sss\naliases:    files\nethers:     files\ngshadow:    files\nnetworks:   files dns\nprotocols:  files\npublickey:  files\nrpc:        files\n
Run Code Online (Sandbox Code Playgroud)\n

(现在我看看,好像 sssd妨碍了事情。)下面没有文件/etc/sssd/,状态如下所示:

\n
\xe2\x97\x8f sssd.service - System Security Services Daemon\n   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: enabled)\n   Active: active (running) since Thu 2020-10-22 17:16:49 EDT; 6 days ago\n Main PID: 899 (sssd)\n    Tasks: 3 (limit: 4428)\n   Memory: 6.4M\n   CGroup: /system.slice/sssd.service\n           \xe2\x94\x9c\xe2\x94\x80899 /usr/sbin/sssd -i --logger=files\n           \xe2\x94\x9c\xe2\x94\x80940 /usr/libexec/sssd/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files\n           \xe2\x94\x94\xe2\x94\x80944 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files\n
Run Code Online (Sandbox Code Playgroud)\n

关于为什么我无法使用预期的密码登录,直到使用 进行设置之前,有什么想法吗passwd

\n