使用首選使用者名,但針對 Kerberos 主體進行身份驗證
我想做的事情應該很簡單。
我有一個 Ubuntu 10.04 盒子。它目前配置為針對 kerberos 領域 (EXAMPLE.ORG) 對使用者進行身份驗證。krb5.conf 文件中只有一個領域,它是預設領域。
[libdefaults] default_realm = EXAMPLE.ORG
PAM 配置為使用 pam_krb5 模組,因此如果在本地電腦上創建了使用者帳戶,並且該使用者名與 username@EXAMPLE.ORG 憑據匹配,則該使用者可以通過提供其 kerberos 密碼登錄。
我想做的是創建一個具有不同使用者名的本地使用者帳戶,但始終根據 kerberos 伺服器中的規範名稱對其進行身份驗證。
例如,kerberos 主體是
full.name@EXAMPLE.ORG
. 我想創建本地帳戶preferred.name
並以某種方式配置 kerberos,當有人嘗試以身份登錄時preferred.name
,它使用主體full.name@EXAMPLE.ORG
。我曾嘗試使用
auth_to_local_names
krb5.conf 中的,但這似乎沒有奏效。[realms] EXAMPLE.ORG = { auth_to_local_names = { full.name = preferred.name }
我嘗試添加
full.name@EXAMPLE.ORG
到 ~preferred.name/.k5login。在所有情況下,當我嘗試以 preferred.name@host 身份登錄並輸入 full.name 的密碼時,我都會收到拒絕訪問。
我什至嘗試
auth_to_local
在 krb5.conf 中使用,但語法不正確。是否有可能擁有一個(不同的)本地使用者名,其行為與匹配的使用者名完全一樣?如果是這樣,這是如何完成的?
我想到了。我根本不需要使用 auth_to_local。我可以在使用者的主目錄中使用 .k5login。第一的,
cat > ~preferred.name/.k5login full.name@EXAMPLE.ORG
然後,我必須配置 PAM 以支持 .k5login。在我找到
auth sufficient pam_krb5.so
的 /etc/pam.d/common-auth 中,附加選項search_k5login
。此後,任何以preferred.name 身份登錄的嘗試都將接受full.name@EXAMPLE.ORG 的密碼。