Hi Nicolas,

On Thu, 17 Apr 2025 02:46:13 +0800,
Nicolas Maupu wrote:
>
> Hello !
>
> I enabled fprintd with fprintd and added fprintd-service-type service to my
> configuration.
> This works : I can enroll and verify my fingerprints with success.
>
> However, fingerprints cannot be used to login from GDM, nor from sudo or
> any other authentication tools.
> As far as I understand, this needs some PAM configuration to be added to
> existing config files.
> For example, if I want to be able to use fingerprints to authenticate with
> sudo, I would need to add to /etc/static/pam.d/sudo:
>
> auth sufficient pam_fprintd.so
>
> I came across the "pam-extension" function browsing the guix source code
> but I am not sure on how I can implement that in my system.scm...
>
> Is there a tutorial or an example snippet I can use to achieve that?
>
> Thanks,
> Nicolas

The following service is equivalent to your need:
--8<---------------cut here---------------start------------->8---
(simple-service 'my-pam-service pam-root-service-type
  (let ((my-pam-entry
         (pam-entry
           (control "sufficient")
           (module (file-append fprintd "/lib/security/pam_fprintd.so")))))
    (list (pam-extension
            (transformer
             (lambda (pam)
               (if (string=? "sudo" (pam-service-name pam))
                   (pam-service
                     (inherit pam)
                     (auth
                      (append (pam-service-auth pam)
                              (list my-pam-entry))))
                   pam)))))))
--8<---------------cut here---------------end--------------->8---

 Thanks

Reply via email to