#%PAM-1.0auth required /lib/security/pam_securetty.soauth required /lib/security/pam_unix.so nullokauth required /lib/security/pam_nologin.soaccount required /lib/security/pam_unix.sopassword required /lib/security/pam_cracklib.sopassword required /lib/security/pam_unix.so shadow nullok \use_authtoksession required /lib/security/pam_unix.sosession optional /lib/security/pam_console.so
Atenção
É importante ressaltar que este arquivo é somente um exemplo, podendo ser diferente do que estiver contido em sua máquina.
Este arquivo de configuração lista os módulos PAM que este programa (login) deve usar, e eles estão representados na figura através de letras. Estes módulos serão carregados e executados na ordem em que estiverem no arquivo de configuração. Note que um módulo pode aproveitar uma informação de um módulo anterior, como normalmente é feito para o nome de acesso/senha. Isso é usado para não pedir a mesma informação novamente para o usuário.
A primeira coluna em um arquivo de configuração PAM representa o tipo de módulo: auth, account, password ou session. Neste exemplo, todos estão presentes, mas isto não é obrigatório. Se um programa não tiver suporte à troca de senha, o tipo password não é usado.
A segunda coluna define o controle para o seu respectivo módulo. O resultado de cada módulo pode influenciar de diversas formas no resultado do processo de autenticação geral. Há algumas categorias:
required:
O resultado deste módulo influencia diretamente o resultado final. Uma falha em um módulo deste tipo só aparecerá para o usuário após todos os outros módulos desta classe serem executados.
requisite:
Semelhante a required, mas os outros módulos não são executados e o controle volta imediatamente para o aplicativo em caso de falha.
sufficient:
A falha deste módulo não implica em falha da autenticação como um todo. Se o módulo falhar, o próximo da classe é executado. Se não houver próximo, então a classe retorna com sucesso. Se, por outro lado, o módulo terminar com sucesso, então os módulos seguintes dessa classe não serão executados.
optional:
Os módulos marcados como optional praticamente não influenciam o resultado da autenticação como um todo. Eles apenas terão alguma influência caso os módulos anteriores da mesma classe não apresentem um resultado definitivo.
Por fim, a terceira coluna define o nome do módulo que será usado e seus parâmetros. Todos os módulos estão documentados no diretório /usr/share/doc/pam-doc-versão (pacote pam-doc). Será visto aqui apenas ilustrar como funcionam os usados no programa login.
Em primeiro lugar, observa-se que todos os módulos possuem o parâmetro required, ou seja, não podem falhar (com exceção do pam_console).