O parâmetro
module-type está relacionado com o tipo de gerenciamento de tarefa realizado pelo
Linux-PAM, podendo ser: gerenciamento de autenticação (auth), gerenciamento de conta (account), gerenciamento de sessão (session) e gerenciamento de senha (password).
account: realiza o gerenciamento não-autenticado contas. É tipicamente usado para permitir ou negar acesso a serviços de um usuário em uma data ou máquina específica, além de permitir controles diversos, como expiração de senha.
auth: fornece dois aspectos para autenticação de usuário. Primeiramente, verifica se o usuário realmente é quem ele diz ser, instruindo a aplicação a solicitar a senha ou outra forma de identificação. Além disso ele pode configurar credenciais ou privilégios do usuário, como estabelecer a quais grupos o usuário pertence.
password: é utilizado para alterar a senha (ou outro mecanismo de autenticação do usuário). Em geral é utilizado após o módulo auth, para exigir a senha antiga antes da nova.
session: providencia o controle das ações realizadas antes e depois da conexão do usuário ao serviço disponibilizado pela aplicação PAM. Isso inclui informações relacionadas a montagens de diretórios, configuração de variáveis de ambiente, registro de atividades etc.
O parâmetro
control-flag indica o comportamento da API PAM no caso de sucesso ou falha no processo de autenticação. Há dois tipos de sintaxe para este campo, uma mais simples (amplamente usada) e outra mais complexa envolvendo pares de valor-ação. Neste artigo, usaremos a mais simples, que consiste da seguintes palavras-chave:
- required: indica que o sucesso do módulo é necessário ao sucesso da tarefa especificada pelo parâmetro module-type. A falha desse módulo não interromperá a checagem dos outros módulos de mesmo tipo.
- requisite: funciona de maneira similar à opção required. No entanto, em caso de falha, o controle é retornada automaticamente para a aplicação desconsiderando-se os outros módulos do mesmo tipo.
- sufficient: o sucesso de um módulo com a opção sufficient é suficiente para satisfazer a pilha de módulos destinada ao tipo de módulo onde é usado. O Linux-PAM retorna imediatamente o controle para a aplicação desconsiderando os demais módulos do mesmo tipo. A falha nesse módulo, entretanto, não implica em falha da pilha, a menos que seja o único.
- optional: o sucesso ou falha deste módulo somente é importante se ele é o único módulo na pilha associada com o serviço especificado.É utilizado em módulos que oferecem algum serviço ao usuário, mas que não são críticos ao processo de autenticação como um todo.
O parâmetro module-path, se iniciado com o caractere '/', é o caminho completo do módulo que será carregado pelo PAM, caso contrário, o Linux-PAM considera o caminho relativo ao diretório /lib/security/ ou /lib64/security/.
O parâmetro args consiste de uma lista de argumentos separados por espaço usados para modificar o comportamento de um dado módulo PAM. É específico de cada módulo.