Existe um módulo PAM chamado pam_exec
- se você escrever um script que verifique e / ou crie o volume do ZFS, você pode encadear isso em suas regras existentes do PAM e manter as coisas legais sem assumir login interativo, shells padrão & diretórios esqueletos, etc. Por exemplo, você poderia ter
session required pam_unix.so
session required pam_exec.so check_zfs.sh $PAM_USER
ou o que for adequado à sua configuração específica.
(Como Tom Shaw apontou nos comentários, ter session required pam_mkhomedir.so
seria redundante.)