kinit
我在 Debian Buster 上测试了有效的 Kerberos 身份验证。现在我尝试将它与PAM 用于使用 Kerberos 登录并安装libpam-krb5
并配置它pam-auth-update
。但文档中/usr/share/doc/libpam-krb5/README.Debian.gz
指出:
此配置仍然要求用户列在 /etc/shadow 中,否则 pam_unix 帐户模块将失败。通常,应仅使用 Kerberos 身份验证的帐户应使用 adduser --disabled-password 创建。如果您根本不希望在 /etc/shadow 中列出帐户(例如,如果您使用其他源而不是 nsswitch 配置文件),则可以将 pam_krb5 帐户模块标记为足够,而不是需要这样才能不运行 pam_unix。这意味着您将无法在本地禁用帐户。
/etc/shadow
除了 Kerberos 数据库之外,我不希望在本地再次列出帐户,因为这对我来说是多余的工作。我尝试使用默认设置登录并遇到此失败:
Debian GNU/Linux 10 deb10-base ttyS0
deb10-base login: ingo
Password:
Authentication failure
在journalctl
我发现这一点:
Oct 06 15:33:08 deb10-base login[374]: pam_krb5(login:auth): user ingo authenticated as [email protected]
Oct 06 15:33:08 deb10-base login[374]: pam_unix(login:account): could not identify user (from getpwnam(ingo))
Oct 06 15:33:08 deb10-base login[374]: Authentication failure
这正是上面引用的文档所期望的。但我不明白注释中修改PAM配置文件的位置和内容。当前配置文件与文档不匹配。
我必须修改 PAM 配置文件中的哪些条目必需的到充足的?也许还有其他事情要做吗?如果可能的话,我想保留 pam-auth-update 配置部分。
更新:
忘了提及我启动pam-auth-update
并检查了选项:
[*] Kerberos authentication
[*] Unix authentication
[*] Create home directory on login
我试图取消选中“Unix认证“但这使得登录无法使用。我无法再次登录,即使不是以 root 身份登录。我必须从快照中恢复。
答案1
我在这里看到两个不完美的选择:
- 修改生成的块
/etc/pam.d/common-account
并接受pam-auth-update
不再触及它,或者 dpkg-divert
并修改/usr/share/pam-configs/krb5
、重新生成/etc/pam.d/common-account
并接受更新libpam-krb5不会/usr/share/pam-configs/krb5
再影响了
第一种情况,改成required
就sufficient
行
account required pam_krb5.so minimum_uid=1000
在第二种情况下,在Account:
段落中执行相同的操作,这应该会导致/etc/pam.d/common-account
重新生成后发生上述更改。
答案2
经过更多研究后,我发现仅使用 Kerberos 进行身份验证似乎是一个普遍问题。您只获得身份验证,但没有授权。在这种情况下,授权是由禁用密码的本地帐户授予的。因此,如果您不提供其他来源的帐户,则必须管理其他本地帐户。
使用 NSS,您可以从远程源获取帐户,特别是从 LDAP 服务器。这样登录总会找到一个账号进行授权,要么是从LDAP服务器,要么是从本地/etc/passwd
文件,主要是针对root这样的系统账号。我只需在 LDAP 服务器上的一处管理帐户。
我只是要设置一个用于会计的 LDAP 服务器。