我想要做的事情应该非常简单。
我有一台 Ubuntu 10.04 机器。它目前配置为根据 kerberos 域 (EXAMPLE.ORG) 对用户进行身份验证。krb5.conf 文件中只有一个域,它是默认域。
[libdefaults]
default_realm = EXAMPLE.ORG
PAM 配置为使用 pam_krb5 模块,因此如果在本地计算机上创建了用户帐户,并且该用户名与[电子邮件保护]凭证,该用户可以通过提供其 Kerberos 密码登录。
我想做的是创建一个本地用户帐户不同的用户名,但始终根据 kerberos 服务器中的规范名称进行身份验证。
例如,kerberos 主体是[email protected]
。我想创建本地帐户preferred.name
并以某种方式配置 kerberos,以便当有人尝试以 身份登录时preferred.name
,它使用主体[email protected]
。
我曾尝试auth_to_local_names
在 krb5.conf 中使用,但这似乎不起作用。
[realms]
EXAMPLE.ORG = {
auth_to_local_names = {
full.name = preferred.name
}
我已尝试添加[email protected]
到~preferred.name/.k5login。
在所有情况下,当我尝试以 preferred.name@host 身份登录并输入 full.name 的密码时,都会出现访问被拒绝的情况。
我甚至尝试auth_to_local
在 krb5.conf 中使用,但无法获得正确的语法。
是否有可能拥有一个(独特的)本地用户名,其所有用途的行为都与匹配的用户名完全相同?如果可以,如何实现?
答案1
我搞明白了。我根本不需要使用 auth_to_local。我可以在用户的主目录中使用 .k5login。首先,
cat > ~preferred.name/.k5login
[email protected]
然后,我必须配置 PAM 以遵守 .k5login。在 /etc/pam.d/common-auth 中,我找到auth sufficient pam_krb5.so
,并附加选项search_k5login
。
此后,任何以 preferred.name 身份登录的尝试都将接受以下密码:[电子邮件保护]。