É possível ignorar um módulo PAM ausente?

3

Estou configurando yubico-pam para ativar o acesso sudo sem senha usando a resposta de desafio de um Yubikey. Os seguintes trabalhos:

# /etc/pam.d/sudo
auth       sufficient     pam_yubico.so mode=challenge-response
auth       required       pam_opendirectory.so
account    required       pam_permit.so
password   required       pam_deny.so
session    required       pam_permit.so

a menos que o módulo pam_yubico.so esteja faltando, seja desinstalado ou corrompido, caso em que um é informado:

$ sudo su -
sudo: unable to initialize PAM: No such file or directory

É possível dizer ao PAM para ignorar um módulo que está faltando, em vez de simplesmente retornar imediatamente e evitar que o PAM continue a avaliar a pilha?

    
por CodeGnome 02.04.2015 / 17:03

1 resposta

0

Na sintaxe estendida (consulte pam.conf(5) ), é possível definir um comportamento personalizado para quando a chamada dlopen () falhar definindo um comportamento para o código de erro open_err . Dito isso, sufficient já deveria estar realizando isso para você. Aqui está a sintaxe estendida equivalente da mesma página de manual:

    sufficient
      [success=done new_authtok_reqd=done default=ignore]

Veja que default=ignore no final?

   The last of these, default, implies ´all valueN´s not mentioned
   explicitly. Note, the full list of PAM errors is available in
   /usr/include/security/_pam_types.h. 

Em outras palavras, default=ignore é equivalente a open_err=ignore . A menos que o PAM esteja se comportando de uma maneira que não esteja documentada aqui, isso sugeriria que a falha está ocorrendo mais abaixo na pilha.

Apenas para eliminar qualquer dúvida, aqui está a definição de PAM_OPEN_ERR dos cabeçalhos:

#define PAM_OPEN_ERR 1          /* dlopen() failure when dynamically */
                                /* loading a service module */
    
por 03.04.2015 / 02:09

Tags