Sintaxe de controle “success = n” nos arquivos pam.conf / pam.d / *

16

Depois de configurar o Kerberos com sucesso, é isso que encontrei no /etc/pam.d/common-autharquivo:

auth    [success=2 default=ignore]      pam_unix.so nullok_secure
auth    [success=1 default=ignore]      pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass
auth    requisite                       pam_deny.so
auth    required                        pam_permit.so

O success=2valor do controle significa que, se pam_unix.so falhar , a autenticação pula para a auth requisite pam_deny.solinha ou para a última linha?

Jamie
fonte

Respostas:

17

Pelo meu entendimento, success=$numespecificará quantas regras serão ignoradas quando tiver êxito. Então, se quer pam_unix.soou pam_winbind.soter sucesso, PAM vai pular para a linha final. Obviamente, a linha final permite acesso em todos os casos.

Warner
fonte
Só para ficar claro; As linhas 1 e 2 pularão para a linha 4 quando tiver êxito. Faz sentido.
21710 Jamie
Obrigado pelas respostas às minhas outras perguntas sobre o PAM: todas as minhas perguntas foram discutidas; Eu restringi os logins ssh a uma lista específica de usuários e esqueci disso quando adicionei autenticação de domínio. Quando adicionei o Kerberos, ele modificou os arquivos PAM corretamente para autenticação do AD.
21710 Jamie
2

pam.d (5) - Página de manual do Linux

Para a sintaxe mais complicada, os valores de controle válidos têm a seguinte forma:
[value1=action1 value2=action2 ...]
A actionN pode ser: um número inteiro não assinado, n, significando uma ação de 'pular os próximos n módulos na pilha'

O que o common-auth diz:

  1. Se a autenticação UNIX local retornar com êxito , pule dois módulos para o quarto módulo (módulo 1 + 2 para pular -> módulo 4). Caso contrário, ignore o resultado da autenticação local e vá para o próximo módulo.
  2. Se winbind (substituído por sssd hoje em dia) pela autenticação kerberos retornar com êxito , pule um módulo para o módulo 4. Caso contrário, ignore o resultado da autenticação local e vá para o próximo módulo.
  3. Negue a solicitação de autenticação. O resultado é finalizado como DENIED e o PAM para aí (a ação definida para o controle necessário).
  4. Permitir tudo. O resultado é finalizado como PERMITIDO, mas passa para o próximo módulo (a ação definida para o controle necessário). No entanto, não há nenhum módulo a ser executado, então ele termina aí.
seg
fonte