Estou escrevendo meu próprio módulo PAM que fará parte de um aplicativo que estou desenvolvendo, mas não sei exatamente onde colocá-lo. Meu módulo basicamente faz autenticação no nível da rede (com outro mojo, é claro) semelhante ao LDAP.
Existem muitos arquivos de configuração no meu /etc/pam.d/
diretório e eu sei o que a maioria dos serviços faz (exceto alguns, como atd, polkit, ppp). Presumo que a autenticação com a pilha PAM seja algo como isto:
- Executa a pilha com base no nome do serviço (se houver um arquivo de configuração)
- Se não estiver autenticado, volte ao common- *, onde * é o tipo de módulo (auth, conta, etc)
- Retornar com êxito ou falhar ao chamar o aplicativo (e quaisquer outros dados, é claro)
Estou correto nesta suposição? Todas as plataformas têm autenticação comum, conta comum, senha comum e sessão comum?
sufficient
Nesse caso, eu estava pensando em colocá-lo no topo do common- * como um módulo, para que, em caso de falha, a pilha PAM normal não fosse afetada. Isso é particularmente vantajoso porque eu posso fazer isso programaticamente na instalação do software.
Sinto falta de possíveis vulnerabilidades de segurança?
Não consegui encontrar uma documentação muito boa sobre onde integrar módulos PAM personalizados ou problemas de segurança em torno de onde colocar módulos.