Freebsd

PAM:在 pam_mkhomedir 之前執行命令?

  • August 11, 2018

當使用者登錄系統並且沒有主目錄時,我們想使用pam_mkhomedir創建使用者的主目錄。這是一種常見的做法。以下是 pam_mkhomedir 的簡要說明:

如果會話開始時不存在,pam_mkhomedir PAM 模組將創建一個使用者主目錄。這允許使用者存在於中央數據庫(例如 NIS、kerberos 或 LDAP)中,而無需使用分佈式文件系統或預先創建大量目錄。骨架目錄(通常是 /etc/skel/)用於複製預設文件,並為創建設置一個 umask。

然而,這是一個執行 ZFS 的 FreeBSD 8.2 系統。我們需要先執行一個 ZFS 命令,因為我們希望每個使用者有一個 ZFS 文件系統pam_mkhomedir可以做一個mkdir,但我們需要做一些類似的事情zfs create /zpool/home/$USER

有誰知道在使用者第一次登錄會話期間是否可以使用 PAM 執行命令?

有一個 PAM 模組稱為pam_exec- 如果您編寫一個檢查和/或創建 ZFS 卷的腳本,您可以將其連結到您現有的 PAM 規則中並保持良好狀態,而無需假設互動式登錄、預設 shell 和框架目錄等。對於例如,你可以有

session required pam_unix.so
session required pam_exec.so check_zfs.sh $PAM_USER

或任何適合您的特定設置。

(正如湯姆肖在評論中指出的那樣,擁有session required pam_mkhomedir.so將是多餘的。)

引用自:https://serverfault.com/questions/272970