Pergunta

Temos um cliente de SELinux que os usuários da rede autentica usando LDAP se conectar a um servidor do Active Directory. Desde as nossas máquinas têm que operar "untethered," nós temos que usar nscd para grupo de cache e informações passwd.

Eis a questão. Se alterar as informações de grupo no servidor Active Directory, em seguida, faça o login no cliente, se existe um cache para esse usuário, LDAP parece ignorar o servidor e só usar os dados em cache. A única maneira que temos sido capazes de obter uma atualização é invalidar o cache passwd.

parcela significativa de /etc/nsswitch.conf:

    passwd: file ldap cache
    group:  file ldap cache
    shadow: file ldap cache

Graças.

Update:. Descobri correndo strace getent passwd que o cache nscd checado antes /etc/nsswitch.conf é lido, então a configuração do nss não importa

Update 2: Jogando com nss_updatedb hoje para ver se ele vai funcionar. Até agora, nenhuma alegria, embora Este COMO FAZER parece exatamente o que precisamos fazer.

Foi útil?

Solução 2

Nós finalmente resolvido isso usando nss_updatedb para armazenar em cache o grupo e bases de dados passwd localmente. Nós, então, desligado nscd.

Nós adicionamos o módulo pam_exec ao pam.d lista e usá-lo para executar nss_updatedb antes da autenticação para garantir que o cache local é até à data.

Outras dicas

Se você não quer resultados de cache de diretório ativo, então você precisa se quer desligar nscd ou definir o seu tempo de vida de cache para alguns minutos (edit /etc/nscd.conf). Eu acredito que o tempo padrão para ao vivo é de 10 minutos para passwd e e hora para o grupo.

Você pode armazenar em cache nscd facilmente alinhada com os seguintes comandos:

sudo nscd -i passwd
sudo nscd -i group

Depois de limpeza de cache nscd com comandos dados você veria dados LDAP alterados.

Para mais detalhes veja: http://sysadmin-notepad.blogspot.rs/2013/05/how-to-flush-nscd-cache-in-linux.html

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top