Arquivos de autenticação comum a todas as aplicações
# vim /etc/pam.d/common-auth
auth sufficient pam_unix.so
auth required pam_ldap.so use_first_pass
# vim /etc/pam.d/common-account
account sufficient pam_unix.so
account required pam_ldap.so use_first_pass
# vim /etc/pam.d/common-password
password sufficient pam_unix.so
password required pam_ldap.so try_first_pass
# vim /etc/pam.d/common-session
session sufficient pam_unix.so
session required pam_ldap.so use_first_pass
session optional pam_mkhomedir.so skel=/etc/skel umask=0022
session optional pam_limits.so
A autenticação "sufficient", em um módulo de "common-auth", indica que o usuário deverá ser buscado em outra base caso não seja encontrado na base local. Se houver a correspondência entre usuário e senha na base local (pam_unix.so), este será autenticado e realizará logon no sistema local, caso contrário será consultada a base remota (pam_ldap.so). O parâmetro use_first_pass aproveita a senha e o usuário da consulta local na consulta remota.
O parâmetro "try_first_pass" do módulo de gerenciamento de senhas é utilizado para que seja solicitada a senha anterior quando for haver a troca da senha atual.
Os parâmetros do módulo "pam_mkhomedir.so" são utilizados para criar o home dos usuários no servidor quando estes efetuam o primeiro logon. Estes parâmetros devem possuir a prioridade opcional para evitar que o usuário seja proibido de efetuar logon por já possuir um home criado.
O módulo "pam_limits.so" utiliza a configuração existente em /etc/security/limits.conf para criar restrições aos recursos do sistema por parte de aplicações ou usuários.
Arquivos de autenticação para os gerenciadores gráficos kdm e gdm e para o programa login
# vim /etc/pam.d/kdm
@include common-auth
@include common-account
@include common-session
@include common-password
auth required pam_nologin.so
auth required pam_env.so
# vim /etc/pam.d/kscreesaver
auth sufficient pam_ldap.so
auth required pam_unix.so shadow nullok
# vim /etc/pam.d/gdm-session
@include common-auth
@include common-account
@include common-session
@include common-password
auth required pam_nologin.so
auth required pam_env.so
# vim /etc/pam.d/login (opcional)
@include common-auth
@include common-account
@include common-session
@include common-password
auth required pam_securetty_so
auth required pam_nologin.so
auth required pam_env.so
O módulo pam_nologin.so é utilizado pelo PAM na consulta sobre a existência do arquivo /etc/nologin, se esse arquivo existir, nenhum usuário comum realiza logon na máquina.
O módulo pam_securetty.so é utilizado pelo PAM na consulta sobre a existência de terminal seguro para logon do usuário root, se houver terminal listado no arquivo /etc/securetty, o root poderá realizar logon no sistema, do contrário não poderá haver logon de root na máquina.
A configuração realizada no arquivo /etc/pam.d/kscreesaver, conforme observado por Carlos Morimoto, possibilita que o usuário já logado possa destravar o console na proteção de tela. Caso contrário, seria necessário realizar outro logon na máquina.
Bom trabalho a todos.
Em caso de dúvidas, críticas ou sugestões: araujo@5cta.eb.mil.br
Abraços.