我在 Alpine Linux 服务器上安装了 nss-pam-ldapd,编辑了 nslcd.conf 以使用我在其他地方运行的 ldap 服务器,并在 /etc/ssh/sshd_config 中添加了“UsePAM yes”。我有两个本地帐户,root 和 admin,以及一个 ldap 帐户,ldapuser
- 我可以以 admin 或 ldapuser 身份通过 ssh 进入服务器
- 作为管理员,我可以运行 sudo -u ldapuser echo hello
- 作为管理员,我无法运行 su ldapuser
- 作为 root,我可以 su 进入 admin 和 ldapuser
- 作为 ldapuser,我可以 su 进入 root 和 admin
一般情况下,如果所涉及的唯一帐户在 /etc/shadow 中有条目,一切似乎都运行正常。互联网上的研究似乎表明我可以使用 /etc/pam.d 配置文件修复任何登录问题,但它们似乎对 su 没有任何作用。作为一个实验,我从 /etc/pam.d/su 中注释掉了“auth adequate pam_rootok.so”,root 仍然可以以任何用户身份进行 su,而无需密码。
我听从了 Bob Goddards 评论中的建议并使用了 sssd。我不得不切换到 Debian,因为 sss 似乎高度依赖于 glib。有一个 APK 包,但它仅限于测试,而且似乎多年来没有取得进展,我无法获取源代码进行构建,我遇到了几次使用 musl libc 进行构建的尝试,但由于缺少 glibc 功能,它们似乎都失败了。