Curs: | SambasobreLDAP, LinuxAdministracioAvancada |
Fitxers: | Ldap2.pdf (Ldap2.odp),
AutenticacioiAutoritzacionsLinux.pdf (AutenticacioiAutoritzacionsLinux.odp) |
Repositori SVN: | https://[email protected]/svn/iceupc/SambaSobreLDAP |
Usuari: | anonymous |
Paraula de pas: | sense paraula de pas |
Autors: | Sergi Tur Badenas |
Nss-updatedb és una alternativa a sistemes de cache com NSCD. És una cache en format db (consulteu l'articles NSSwitch). L'avantatge d'aquest sistema és que si cau el servidor Ldap tot continua funcionant.
$ sudo apt-get install nss-updatedb
Executables:
$ dpkg -L nss-updatedb | grep bin /usr/sbin /usr/sbin/nss_updatedb
Base de dades:
$ dpkg -L nss-updatedb | grep var /var /var/lib /var/lib/misc
Per sincronitzar la cache cal executar:
$ sudo nss_updatedb ldap
Podem configurar cron per tal de sincronitzar la base de dades periòdicament. Per exemple:
$ sudo joe /etc/cron.hourly/nssupdate.sh
#!/bin/bash LOCK=/var/run/auth-update.cron [ "$1" != "0" ] && [ -f $LOCK ] && [ -d /proc/"$(cat $LOCK)" ] && exit 0 echo $$ > $LOCK RANGE=3600 [ "$1" != "" ] && RANGE=$1 SLEEP=$RANDOM [ "$RANGE" != "0" ] && let "SLEEP %= $RANGE" || SLEEP=0 sleep $SLEEP go=true while $go; do /usr/sbin/nss_updatedb ldap [ $? -eq 0 ] && go=false [ "$go" == "true" ] && sleep 10 done rm $LOCK exit 0
I el fem executable
$ sudo chmod +x /etc/cron.hourly/nssupdate.sh
Finalment cal modificar la configuració de NSSwitch. Editem el fitxer /etc/nsswitch.conf :
passwd: compat ldap [NOTFOUND=return] db group: compat ldap [NOTFOUND=return] db
Els fitxers locals de base de dades es troben a:
/var/lib/misc/passwd.db /var/lib/misc/group.db
Estan en format Berkeley db:
$ file /var/lib/misc/passwd.db /var/lib/misc/passwd.db: Berkeley DB (Btree, version 9, native byte-order)
$ sudo joe /etc/cron.daily/nssupdate
#!/bin/bash # Random pause to spread load on the server (max ~2 hours) sleep $(($(od -dN2 /dev/urandom | sed -n 's/[^ ]* //p')%5413)) nss_updatedb ldap EOF
$ sudo chmod +x /etc/cron.daily/nssupdate
Es pot provocar l'execució al arrancar:
$ sudo joe /etc/network/if-up.d/nssupdatedb
#!/bin/bash nnss_updatedb ldap
$ sudo chmod +x /etc/network/if-up.d/nssupdatedb