16.3. Configuração de módulos PAM

Alguns dos módulos PAM são configuráveis. Os arquivos de configuração correspondentes estão localizados em /etc/security. Essa seção apresenta uma breve descrição dos arquivos de configuração relevantes para o exemplo do sshd: pam_unix2.conf, pam_env.conf, pam_pwcheck.conf e limits.conf.

16.3.1. pam_unix2.conf

O método tradicional de autenticação baseada em senha é controlado pelo módulo PAM pam_unix2. Ele consegue ler os dados necessários de /etc/passwd, /etc/shadow, mapas NIS, tabelas NIS+ ou um banco de dados LDAP. Para influenciar o comportamento desse módulo, configure as opções de PAM do aplicativo em si ou efetue uma mudança global editando /etc/security/pam_unix2.conf. Um arquivo de configuração do módulo bastante básico é mostrado no Exemplo 16.6, “pam_unix2.conf”.

Exemplo 16.6. pam_unix2.conf

auth:   nullok
account:
password:       nullok
session:        none

A opção nullok para os tipos de módulo auth (autenticação) e password (senha) especifica que senhas vazias são permitidas para o tipo de conta correspondente. Os usuários também têm permissão para mudar as senhas de suas contas. A opção none (nenhum) do tipo de módulo session (sessão) especifica que nenhuma mensagem foi registrada em seu nome (esse é o padrão). Obtenha mais informações sobre opções adicionais de configuração nos comentários do próprio arquivo e na página pam_unix2(8) do manual.

16.3.2. pam_env.conf

Esse arquivo pode ser usado para definir um ambiente padronizado para os usuários que será definido sempre que o módulo pam_env for chamado. Com ele, predefina variáveis de ambiente usando a seguinte sintaxe:

VARIÁVEL  [DEFAULT=[valor]]  [OVERRIDE=[valor]]
VARIÁVEL

Nome da variável de ambiente a ser definida.

[DEFAULT=[valor]]

Valor padrão que o administrador deseja definir.

[OVERRIDE=[valor]]

Os valores que podem ser usados para consulta e definidos por pam_env, substituindo o valor padrão.

Um exemplo típico de como o módulo pam_env pode ser usado é a adaptação da variável DISPLAY, que é mudada sempre que ocorre um login remoto. Você pode ver isso no Exemplo 16.7, “pam_env.conf”.

Exemplo 16.7. pam_env.conf

REMOTEHOST     DEFAULT=localhost OVERRIDE=@{PAM_RHOST}
DISPLAY        DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}

A primeira linha define o valor da variável REMOTEHOST para o localhost, que é usada sempre que pam_env não puder determinar qualquer outro valor. A variável DISPLAY, por sua vez, contém o valor de REMOTEHOST. Mais informações podem ser encontradas nos comentários do arquivo /etc/security/pam_env.conf.

16.3.3. pam_pwcheck.conf

Esse arquivo de configuração se destina ao módulo pam_pwcheck, que lê opções dele para todos os módulos do tipo password (senha). As configurações armazenadas nesse arquivo têm prioridade sobre as configurações PAM de um aplicativo individual. Se configurações específicas a um aplicativo não tiverem sido definidas, o aplicativo usará as configurações globais. Exemplo 16.8, “pam_pwcheck.conf” instrui o módulo pam_pwcheck a permitir senhas vazias e a modificação de senhas. Mais opções para o módulo são citadas no arquivo /etc/security/pam_pwcheck.conf.

Exemplo 16.8. pam_pwcheck.conf

password:    nullok

16.3.4. limits.conf

Os limites do sistema podem ser definidos para um usuário ou para um grupo no arquivo limits.conf, que é lido pelo módulo pam_limits. O arquivo permite a definição de limites fixos, que não podem ser excedidos em hipótese alguma, e limites flexíveis, que podem ser excedidos temporariamente. Para obter informações sobre a sintaxe e as opções disponíveis, leia os comentários contidos no arquivo.