Ubuntu
加入域的 Linux - PAM mkhomedir 創建作為 SSH 的 root 擁有的 homedir
目前,我有一批 linux 電腦加入到帶有 SSSD 的活動目錄域以進行使用者管理 - 主要是 ubuntu,還有一些 Raspian。
我正在使用 pam_mkhomedir.so 通過 /etc/pam.d/common-session 在本地為任何域登錄創建主目錄。
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
這對於本地控制台登錄以及
su [domainuser]
. 它在 /home/ 中創建目錄$$ domain $$/$$ user $$. 但是,當使用者第一次登錄是通過 SSH(伺服器通常是這種情況)時,它會導致該目錄由 root:root 擁有,而不是正確的使用者。 我一直在用這個把頭髮扯下來,嘗試任何我能找到的東西。有任何想法嗎?
原來這是無關的東西——DOH。
它正在為 ssh AuthorizedKeysCommand 執行自定義 bash 腳本,以從 LDAP 屬性中獲取密鑰。它正在將密鑰的記憶體版本寫入使用者的主目錄,並在路徑不存在時創建路徑。
事實證明,這導致 pam_mkhomedir 永遠無法執行,因為該目錄已經存在,至少如果我使用基於密鑰的身份驗證。因此,pam mkdir 根本不是問題。
一旦我刪除了這個腳本,它就完美地工作了。我現在重寫了腳本以將 ssh 密鑰記憶體儲存在主目錄之外,並且一切都按預期工作。
只是在此處記錄它以提醒可能同樣陷入困境的其他任何人 - 跳出框框思考,並確保 pam_mkhomedir 在它應該執行的時候實際執行,尤其是在自定義腳本正在執行時。