LDAP non si aggiorna se esistono dati memorizzati nella cache
-
22-07-2019 - |
Domanda
Abbiamo un client SELinux che autentica gli utenti della rete usando LDAP che si collega ad un server Active Directory. Poiché le nostre macchine devono operare "senza vincoli", " dobbiamo usare nscd per memorizzare nella cache informazioni di gruppo e passwd.
Ecco il problema. Se cambiamo le informazioni di gruppo sul server Active Directory, quindi accediamo al client, se esiste una cache per quell'utente, LDAP sembra ignorare il server e utilizzare solo i dati memorizzati nella cache. L'unico modo in cui siamo riusciti a ottenere un aggiornamento è invalidare la cache passwd.
Parte significativa di /etc/nsswitch.conf:
passwd: file ldap cache group: file ldap cache shadow: file ldap cache
Grazie.
Aggiornamento: capito in esecuzione strace getent passwd
che la cache di nscd viene controllata prima che /etc/nsswitch.conf venga letta, quindi la configurazione di nss non ha importanza.
Aggiornamento 2: Giocare con nss_updatedb oggi per vedere se funzionerà. Finora nessuna gioia, sebbene questo howto sembra esattamente ciò che dobbiamo fare.
Soluzione 2
Abbiamo finalmente risolto questo problema utilizzando nss_updatedb per memorizzare nella cache il gruppo e passare i database localmente. Abbiamo quindi disattivato nscd.
Abbiamo aggiunto il modulo pam_exec alla lista pam.d e l'abbiamo usato per eseguire nss_updatedb prima dell'autenticazione per assicurarci che la cache locale sia aggiornata.
Altri suggerimenti
Se non si desidera memorizzare nella cache i risultati dalla directory attiva, è necessario disattivare nscd o impostare la durata della cache su alcuni minuti (modifica /etc/nscd.conf). Credo che il tempo predefinito per vivere sia di 10 minuti per passwd e di un'ora per il gruppo.
Puoi facilmente svuotare la cache nscd con i seguenti comandi:
sudo nscd -i passwd
sudo nscd -i group
Dopo aver svuotato la cache di nscd con determinati comandi, vedresti i dati LDAP modificati.
Per maggiori dettagli vedi: http://sysadmin-notepad.blogspot.rs/2013/05/how-to-flush-nscd-cache-in-linux.html