Capítulo 3 – Visão geral
Para os leigos, vamos ver um exemplo. Consideraremos uma aplicação que autentica algum serviço para os usuários. Login é um programa desses. Ele faz duas coisas, primeiro, estabelece que o usuário está solicitando autenticação e segundo providencia um shell(bash, tcsh, zsh, etc.) rodando com a identidade do usuário.
Normalmente, o exemplo anterior executa um prompt de comando para a verificação da senha do usuário que uma vez comparada com a cadastrada localmente e comprovada a concordância entre as duas concede ao usuário a identidade requerida. Este processo é a tarefa do Linux-PAM.
Do ponto de vista do desenvolvedor(nesse caso a pessoa que escreveu o programa login), o Linux-PAM cuida da tarefa de verificar a identidade do usuário.
A flexibilidade do Linux-PAM é que você, o administrador do sistema, tem a liberdade de estipular qual método de autenticação será utilizado em uma ou todas aplicações do seu sistema Linux. Isto é, você pode autenticar qualquer coisa através de um método simples(pam_permit) ou até algo tão paranóico como uma varredura de retina, comandos de voz ou uma senha para cada autenticação.
Para ilustrar essa flexibilidade você pode considerar a seguinte situação: O administrador do sistema(pai) pretende aumentar as habilidades matemáticas dos usuários(filhos). Ele pode configurar seus favoritos para uma acerte o número(PAM-aware of course) para serem autenticados com uma multiplicação ramdômica com até 12 dígitos. Claro, que se o jogo é bom eles não acertarão as multiplicações. Conforme eles forem crescendo a autenticação pode passar a ser feita pela divisão entre números mais longos!
O Linux-PAM suporta quatro tipos distindos(gestão) de tarefas, são eles: Gerenciamento de autenticação, contas, sessão e password. Essa associação entre os esquemas de gerenciamento e as aplicações são definidas nos arquivos de configuração do Linux-PAM.
As funções de gerenciamento são desempenhadas por módulos especificados no arquivo de configuração. A sintaxe para este arquivo é discutida na seção a seguir.
Aqui está uma figura que descreve a organização geral do Linux-PAM:
##################################################################################################
##################################################################################################
A fim de explicação, a esquerda da figura está representada a aplicação X que se comunica com as bibliotecas do Linux-PAM e não toma conhecimento das especificidades de seu método de autenticação. A biblioteca do Linux-PAM(no centro) consulta o conteúdo do arquivo de configurações do PAM e carrega os módulos apropriados para a aplicação X. Estes módulos dividem-se em um dos quatro grupos de gestão (inferior-centro) e estão empilhados na ordem em que aparecem no arquivo de configuração. Estes módulos, quando chamados pelo Linux-PAM, executam as diferentes tarefas de autenticação para a aplicação. Informações textuais, exigidas a partir de, ou, oferecidas ao usuário, podem ser trocadas através do uso de uma aplicação suplementar de comunicação.
Se um programa for usar o PAM ele dever possuir as funções do PAM especificadas em seu código fonte. Se você possui acesso ao código fonte, pode adicionar as funçoes apropriadas do PAM. Se você não possui acesso ao código fonte, e os binários não incluem as funções do PAM, não é possível utilizar o PAM.
Nenhum comentário:
Postar um comentário