在 Ubuntu 16.04 上,Freeipa ssh 登录正常,GUI 登录失败并显示“密码错误”

在 Ubuntu 16.04 上,Freeipa ssh 登录正常,GUI 登录失败并显示“密码错误”

我已经在一台虚拟机上运行了此功能,但一定错过了记录我安装或配置的内容,因为我无法让它在我创建的任何其他计算机上运行。我一直在谷歌和这里进行挖掘,但我发现的大多数内容最终都与在问候语中显示“其他...”登录字段有关,或者首先让 FreeIPA 正常工作有关。

我采取的步骤:创建 Ubuntu/Mate 16.04 的全新安装,执行所有更新/升级,将计算机添加到 FreeIPA,安装 freeipa-client,进行配置并运行 ipa-client-install,查看新 VM 是否已注册正确地在 FreeIPA 中,然后通过 ssh-ing 进入我自己和其他一些仅在 FreeIPA 中的用户的计算机进行测试。这一切都工作正常——我可以在不使用 FQDN 的情况下查看各种主机,并使用不在本地 passwd 文件中的用户。

但是,当我尝试使用 Mate GUI 将用户切换到 FreeIPA 中可以通过 ssh 成功登录的用户时(否则很快就会失败并返回到登录屏幕,因为该用户还没有主目录) ),我收到错误“密码不正确,请重试”。唯一可以通过此屏幕登录的用户是我在本地定义的用户。我尝试创建一个由 FreeIPA 用户拥有的主目录以防万一,但这没有什么区别。

因此,ssh 正在解析 lightdm 或登录过程中的某些其他组件无法解析的名称。 lightdm 日志显示了用户“student”的情况,该用户仅在 FreeIPA 中定义:

[+6783.50s] DEBUG: Continue authentication
[+6784.83s] DEBUG: Session pid=25854: Authentication complete with return value 0: Success
[+6784.83s] DEBUG: Authenticate result for user student: Success
[+6784.83s] DEBUG: User student authorized, but no account of that name exists
[+6784.84s] DEBUG: Greeter start authentication for student
[+6784.84s] DEBUG: Seat seat0: Failed to work out session ID to mark
[+6784.84s] DEBUG: Session pid=25872: Started with service 'lightdm', username 'student'
[+6784.84s] DEBUG: Session pid=25854: Exited with return value 0
[+6784.84s] DEBUG: Seat seat0: Session stopped
[+6784.85s] DEBUG: Session pid=25872: Got 1 message(s) from PAM
[+6784.85s] DEBUG: Prompt greeter with 1 message(s)

这与我的 Ubuntu/Mate 机器明显不同,在我的机器上一切正常;在那里,日志看起来像:

[+50005.95s] DEBUG: Continue authentication
[+50006.20s] DEBUG: Session pid=10425: Authentication complete with return value 0: Success
[+50006.20s] DEBUG: Authenticate result for user student: Success
[+50006.20s] DEBUG: User student authorized
[+50006.20s] DEBUG: Greeter sets language en_GB
[+50006.23s] DEBUG: Greeter requests session mate

失败期间,身份验证日志显示以下内容:

Aug 20 18:19:26 client2 lightdm: pam_unix(lightdm:auth): authentication failure; logname= uid=0 euid=0 tty=:1 ruser= rhost=  user=student
Aug 20 18:19:27 client2 lightdm: pam_sss(lightdm:auth): authentication success; logname= uid=0 euid=0 tty=:1 ruser= rhost= user=student
Aug 20 18:19:27 client2 lightdm: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
Aug 20 18:19:27 client2 lightdm: PAM adding faulty module: pam_kwallet.so
Aug 20 18:19:27 client2 lightdm: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
Aug 20 18:19:27 client2 lightdm: PAM adding faulty module: pam_kwallet5.so
Aug 20 18:19:27 client2 lightdm: pam_succeed_if(lightdm:auth): requirement "user ingroup nopasswdlogin" not met by user "student"

我有一些模糊的印象,我必须添加一些包来确保联系 LDAP,但经过大量调查后,这并没有透露任何信息。我很高兴有更多的指示可以查看或协调我的工作系统和非工作系统,但我在这里有点不知所措。

这似乎是一个合理的原因,但我在 /etc/pam.d 中找不到任何指向错误的差异:https://stackoverflow.com/questions/14983807/ldap-login-works-via-terminal-but-doesnt-work-via-gui

这对任何人来说都有警钟吗?

答案1

答案可以在以下网站找到:

https://help.ubuntu.com/lts/serverguide/sssd-ad.html

特别是关于“带有 pam_mkhomedir 的主目录(可选)”的部分

需要会话 pam_mkhomedir.so skel=/etc/skel/ umask=0022

我在从 /etc/pam.d/common-session 可选调用 sssd 之后添加了此内容

相关内容