it-artikel:linux:nscd-oder-warum-neue-benutzergruppen-oder-gruppenmitgliedschaften-nicht-sofort-sichtbar-sind

nscd - Oder warum neue Benutzergruppen oder Gruppenmitgliedschaften nicht sofort sichtbar sind

Ich laufe meines Linux LDAP/SAMBA Projektes musste ich mehrfach feststellen das es vorkommen kann dass das Betriebsystem eine neu angelegte Benutzergruppe oder eine neue Gruppenmitgliedschaft nicht sofort anzeigt. Es kann mit unter bis zu 1h dauern bis die Änderung sichtbar wird. Ursache hierfür scheint der Name Service Caching Daemon kurz NSCD zu sein. Dieser “cached” wie der Name schon sagt Namensanfragen fast aller Art und aktualisiert seinen Cache by Default nur ca all 60 Minuten. Wer davon nichts weis wundert sich schon gerne mal warum Änderungen manchmal nicht sofort sichtbar sind oder manche Kommandos “widersprüchliche Ausagen” machen.

Ein “neustart des NSCD Dienstes” hat bei mir meist NUR SELTEN einen Effekt gezeigt, da der Cache auf Platte geschrieben wird und von dort auch wieder geladen. Wirklich abhilfe schaft da eigentlich nur entweder das umkonfigurieren des NSCD, z.b. auf eine kürzere Caching Zeit (nicht empfehlenswert), oder eben das manuelle “vergessen lassen” des Caches. Ich habe es sinngemäß “brainwash” genannt.

BTW: Die hier gezeigte Vorgehensweise ist nicht auf meinem Mist gewachsen sondern habe ich “irgend wo, irgend wann” mal im Internet gefunden. Einzig habe ich das ding in ein Script verpackt und ein wenig Dokumentiert.

/usr/local/sbin/nscd-brainwash.sh

nscd-brainwash.sh
#!/bin/bash
#set +x
########################################################################
# Script zum erzwingen/löschen des NSCD Caches
#
# /usr/local/sbin/nscd-brainwash.sh
#
# Der Name Service Caching Deamon NSCD cached passwd, groups, service und
# host Anfragen diverser Programme und kann hierdurch enorme Performance
# Verbesserung bieten. Der Daemon und die Caches werden über seine Konfig-
# Datei /etc/nscd.conf eingestellt.
#
# Änderungen in Gruppenmitgliedschaften werden per default manchmal erst
# nach 1h sichtbar. Daher ist es manchmal sinnvoll den Cache zu leeren.
#
# Letzte Änderungen:
# ========================
# 2009-11-03    A.Werner        Release - Version 1.0
#
#
#
#####################################################
 
#            opt1   opt2  op3
for table in passwd group hosts; do nscd --invalidate $table ; done
#
# erzeugt nacheinander die Befehle
#       nscd --invalidate opt1
#       nscd --invalidate opt2
#       nscd --invalidate opt3

Axel Werner 2010-12-30 20:05

it-artikel/linux/nscd-oder-warum-neue-benutzergruppen-oder-gruppenmitgliedschaften-nicht-sofort-sichtbar-sind.txt · Last modified: 2022-08-31 12:30 by 127.0.0.1