(define-module (services pam-mkhomedir) #:use-module (gnu) #:use-module (gnu packages linux) #:use-module (gnu services shepherd) #:use-module (guix modules) #:use-module (guix packages) #:use-module (guix records) #:use-module (srfi srfi-1)) (define-record-type* pam-mkhomedir-configuration make-pam-mkhomedir-configuration pam-mkhomedir-configuration? (arguments pam-mkhomedir-configuration-arguments (default '()))) (define (pam-mkhomedir-pam-service config) (list (pam-extension (transformer (lambda (pam) (define pam-mkhomedir-module #~(string-append #$linux-pam "/lib/security/pam_mkhomedir.so")) (pam-service (inherit pam) (session (cons* (pam-entry (control "optional") (module pam-mkhomedir-module) (arguments (pam-mkhomedir-configuration-arguments config))) (pam-service-session pam))))))))) (define-public pam-mkhomedir-service-type (service-type (name 'pam-mkhomedir) (extensions (list (service-extension pam-root-service-type pam-mkhomedir-pam-service))) (default-value (pam-mkhomedir-configuration)) (description "Activate PAM mkhomedir module.")))