De onde vem a linha pam_systemd.so em system-auth e password-auth?

2

Depois de converter um servidor para usar o SSSD para autenticação, a seguinte linha em /etc/pam.d/system-auth e /etc/pam.d/password-auth causou muito tempo (10 a 20 segundos) trava quando SSHing no servidor:

-session     optional      pam_systemd.so

A remoção dessa linha corrigiu o travamento, mas é claro que sempre que authconfig --update --enablesssd é executado, ele regenera esses arquivos com essa linha.

Como posso evitar que essa linha seja gerada? E o que está causando isso? Ele ainda estava lá depois de remover /etc/systemd/logind.conf e rerunnning authconfig ...

Parece também que as páginas man de system-auth , password-auth , pam_systemd não têm nenhuma informação útil, mas talvez seja apenas eu

    
por galois 19.01.2017 / 23:37

1 resposta

1

A página de manual relevante pode ser invocada com man authconfig .

Nas variantes EL, o arquivo de configuração é /etc/sysconfig/authconfig , mas a documentação não especifica nenhuma configuração para systemd . No CentOS7 / RHEL7, authconfig é um link simbólico para o arquivo, /usr/share/authconfig/authconfig.py .

command -v authconfig
ls -l /usr/bin/authconfig

Dentro de /usr/share/authconfig , o arquivo authinfo.py contém referências a systemd .

cd /usr/share/authconfig
grep systemd *

Dentro deste arquivo, existem muitos arrays definindo "pilhas". Em particular, há uma matriz especificada para sessões. Pode-se mudar o valor de True para False e depois testar se a mudança causou o efeito desejado; mas, eu acho que esse arquivo provavelmente é sobrescrito na atualização.

[True, SESSION, LOGIC_OPTIONAL, "systemd", []]

Pode-se criar um script para a remoção da linha de configuração em vez de chamar authconfig diretamente.

#!/usr/bin/env bash
# 
# File: /usr/local/sbin/enable_sssd.sh
#
authconfig --update --enablesssd
sed -ie "/-session[[:space:]]\+optional[[:space:]]\+pam_systemd.so/d" /etc/pam.d/system-auth
sed -ie "/-session[[:space:]]\+optional[[:space:]]\+pam_systemd.so/d" /etc/pam.d/password-auth

O software de sessão do PAM cria e destrói a sessão de login. Portanto, o manipulador de sessão do PAM faz coisas como modificar utmp , configurar um ambiente, armazenar tickets do Kerberos, et al. Mas você também deve ter session sufficient pam_sss.so para lidar com sessões.

    
por 20.01.2017 / 22:20