使用首选用户名,但对Kerberos主体进行身份validation

我想做的事情应该很简单。

我有一个Ubuntu 10.04盒子。 它目前被configuration为对Kerberos领域的用户进行身份validation(EXAMPLE.ORG)。 krb5.conf文件中只有一个领域,它是默认领域。

[libdefaults] default_realm = EXAMPLE.ORG 

PAMconfiguration为使用pam_krb5模块,因此如果在本地机器上创build了用户帐户,并且该用户名与[email protected]凭证相匹配,则该用户可以通过提供他的kerberos密码login。

我想要做的是使用不同的用户名创build一个本地用户帐户,但要始终使用kerberos服务器中的规范名称对其进行身份validation。

例如,kerberos主体是[email protected] 。 我想创build本地帐户preferred.name并以某种方式configurationkerberos,当有人试图以preferred.namelogin时,它使用主体[email protected]

我曾尝试在krb5.conf中使用auth_to_local_names ,但是这似乎并没有成功。

 [realms] EXAMPLE.ORG = { auth_to_local_names = { full.name = preferred.name } 

我曾尝试将[email protected]添加到[email protected] / .k5login。

在所有情况下,当我尝试以preferred.name@host身份login并inputfull.name的密码时,我的Access被拒绝。

我甚至尝试在krb5.conf中使用auth_to_local ,但是我无法获得正确的语法。

是否有可能有一个(不同的)本地用户名,为所有目的的行为完全一样匹配的用户名呢? 如果是的话,这是怎么做的?

我想到了。 我根本不需要使用auth_to_local。 我可以在用户的​​主目录中使用.k5login。 第一,

 cat > ~preferred.name/.k5login [email protected] 

然后,我必须configurationPAM来兑现.k5login。 在/etc/pam.d/common-auth,我发现auth sufficient pam_krb5.so ,追加选项search_k5login

此后,任何以preferred.namelogin的尝试都将接受[email protected]的密码。