Linux PAM
Tal como o próprio nome indica o PAM é um conjunto de módulos e livrarias que suportam as tarefas de autenticação solicitadas pelas diferentes aplicações.
Os módulos constituintes encontram-se debaixo de /lib/security com a terminação (.so) que interagem com uma biblioteca libpam.
Essencialmente são quatro as actividades que podem ser solicitadas pelas aplicações, que por sua vez, farão uso dos módulos de PAM, como se pode ver na figura 1:
. Auth Stack – autenticação do user seja pelo processo tradicional (username e password), seja por outros processos como autenticação de registos biométricos…etc.
. Account Stack – actividade de decisão de como, quando e onde o user se vai autenticar. . Session Stack – disponibilização dos recursos ao user. . Password Stack – operações com as credenciais do user.
Portanto, qualquer programa que necessite de controlo de acessos e/ou recursos recorrerá sempre ao PAM.
Dois exemplos são os comandos su e passwd que requerem respectivamente, actividades de autenticação e alteração de password.
Como funciona
A figura em baixo exemplifica como o ficheiro de config de PAM é escrito e onde são guardas as politicas de acesso.
Os ficheiros de configuração encontram-se debaixo de /etc/pam.d com o nome da respectiva aplicação.
São utilizadas as flags de controlo para chamar os módulos de PAM: required; requisite; suficiente; optional.
Estas flags determinam a operação a executar com o módulo de PAM e apenas realizam a operação com o módulo solicitado e mais nenhum. Se não conseguir executar a operação solicitada retorna para a aplicação.
No primeiro link da Webgrafia pode-se encontrar uma tabela com alguns módulos utilizados, assim como da utilização especifica de algumas aplicações.
Webgrafia
http://www.tuxradar.com/content/how-pam-works http://en.wikipedia.org/wiki/Linux_PAM http://tldp.org/HOWTO/User-Authentication-HOWTO/x115.html
http://aplawrence.com/Basics/understandingpam.html