(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) (let ((module #~(string-append #$linux-pam "/lib/security/pam_mkhomedir.so"))) (list (lambda (pam) (pam-service (inherit pam) (session (cons* (pam-entry (control "optional") (module 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.")))