Freebsd
PAM:在 pam_mkhomedir 之前執行命令?
當使用者登錄系統並且沒有主目錄時,我們想使用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
將是多餘的。)