感谢这个问题,过去 5 年来,我一直很高兴为 Scientific Linux 6 和 7 生成 Kickstart 文件。然而,我们现在开始使用 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(PAM 支持的 vsftpd)测试了基于密码的登录。
/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
具有与 Kickstart 文件中指定的相同的哈希值:
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
在 Kickstart 文件中使用它,并且authselect current
显示“未检测到现有配置”。从我读到的内容来看,这应该意味着 sssd 已经不存在了(无论如何,据我所知,它仅用于外部身份验证。)
PAM 配置与默认配置没有变化,我添加了选项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
如果我误解了 SSSD,以下是/etc/nsswitch.conf
:
passwd: sss files systemd
shadow: files sss
group: sss files systemd
hosts: files dns myhostname
services: files sss
netgroup: sss
automount: files sss
aliases: files
ethers: files
gshadow: files
networks: files dns
protocols: files
publickey: files
rpc: files
(现在我看它,好像是 sssd是妨碍了事情的发展。)下面没有文件/etc/sssd/
,状态如下:
● sssd.service - System Security Services Daemon
Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-10-22 17:16:49 EDT; 6 days ago
Main PID: 899 (sssd)
Tasks: 3 (limit: 4428)
Memory: 6.4M
CGroup: /system.slice/sssd.service
├─899 /usr/sbin/sssd -i --logger=files
├─940 /usr/libexec/sssd/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files
└─944 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
有没有想过为什么我无法使用预期的密码登录,直到设置密码passwd
?