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.