ordem de leitura de linha de conta comum

1

Minha autenticação é centralizada em um LDAP. Eu tenho um sistema de login que está trabalhando sem qualquer ldap, por isso está presente no meu arquivo /etc/passwd . Este meu arquivo de conta comum no diretório pam.d

account     required      pam_unix.so
account     sufficient    pam_succeed_if.so uid < 10000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

Eu não tenho nenhum problema com isso, mas eu gostaria de saber se este arquivo está bem ordenado, porque em alguma documentação a linha de configuração pam_ldap.so é a primeira.

Obrigado pela resposta.

    
por dubis 04.03.2015 / 10:21

1 resposta

0

Sim, parece estar correto (exceto que você provavelmente deveria estar usando auth e não account ). Vamos pegar cada linha, uma por uma:

auth     required      pam_unix.so

Aqui, você insere a cadeia por meio de pam_unix (autenticação de senha padrão). Este módulo é required , o que significa que, aconteça o que acontecer, a cadeia continuará mais abaixo. No entanto, se este módulo falhar, a cadeia será marcada como com falha e o acesso do usuário provavelmente será negado eventualmente.

auth     sufficient    pam_succeed_if.so uid < 10000 quiet

Esta linha verifica o UID solicitado. Se o módulo for bem-sucedido (o ID do usuário estiver abaixo de 10000), a cadeia será interrompida porque o módulo é sufficient . No entanto, isso não altera a marca definida pelo módulo required anterior: se a autenticação do UNIX falhar, a cadeia terminará com uma falha, mesmo se pam_succeed_if for bem-sucedido.

auth     [default=bad success=ok user_unknown=ignore] pam_ldap.so

Se estivermos aqui, pam_succeed_if deve ter falhado (porque não colocou um fim na cadeia como um módulo sufficient ). Isso significa que estamos acima do UID 10000 (que, acredito, é o limite que você definiu para usuários LDAP). O comportamento deste módulo é um pouco mais detalhado:

  • Se tiver êxito, a cadeia será marcada como bem-sucedida ( ok ). Isto irá contrariar o resultado do módulo UNIX e trazer a cadeia de volta ao estado de sucesso.
  • Se o usuário for desconhecido para o servidor LDAP, o módulo será ignorado. O resultado da sua cadeia será o de pam_unix .
  • Em todos os outros casos ( default ), o módulo marca a cadeia como com falha ( bad ), se o UNIX foi bem-sucedido ou não.

Finalmente, você tem um módulo fictício:

auth     required      pam_permit.so

Este módulo é bem-sucedido toda vez. É usado para definir o estado da cadeia para sucesso se nenhum módulo tiver agido antes. Nunca é seu caso embora.

    
por 29.04.2015 / 11:55

Tags