Quando você chama o Linux-PAM para algum procedimento de autenticação, é sempre uma e apenas uma pilha que é executada.
A definição da pilha é procurada nesses locais; o primeiro tentativa bem-sucedida determina qual arquivo é lido:
-
o arquivo em
/etc/pam.d
com o nome do aplicativo "nome do serviço" (por exemplo,sshd
ougdm
) ou -
o arquivo
/etc/pam.d/other
se nenhum arquivo específico do serviço existir ou -
o arquivo
/etc/pam.conf
se o diretório/etc/pam.d
não existir.
Veja a documentação da função pam_start para detalhes.
Os arquivos common- * são uma convenção seguida por muitos
distribuições, mas não são obrigatórias pelo próprio software PAM.
Eles geralmente são incluídos por outros arquivos PAM por meio de @include
afirmações; por exemplo, o arquivo /etc/pam.d/other
no Debian tem o
seguinte conteúdo:
# We fall back to the system default in /etc/pam.d/common-*
@include common-auth
@include common-account
@include common-password
@include common-session
As mesmas declarações @include
podem ser usadas pelo arquivo específico do serviço como
bem, e - de fato - eles estão na configuração default no Debian.
Note que isto é uma questão de configuração: um sysadmin é livre para
altere o arquivo em /etc/pam.d
para não incluir arquivos comuns * em
tudo!
Portanto: se o seu módulo PAM é específico para sua aplicação, crie
um arquivo de serviço específico do aplicativo e chame o módulo a partir dele.
Não não adiciona automaticamente um módulo ao arquivo PAM de outros serviços nem
o arquivo others
de fallback, pois isso pode quebrar outros aplicativos
instalado no sistema. O gerenciamento da pilha de software do PAM é um
tarefa para o administrador do sistema, não para o aplicativo
desenvolvedores.