33 lines
1.2 KiB
Scheme
33 lines
1.2 KiB
Scheme
(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>
|
|
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.")))
|