IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: SambasobreLDAP, LinuxAdministracioAvancada
Fitxers: Ldap2.pdf (Ldap2.odp),

AutenticacioiAutoritzacionsLinux.pdf (AutenticacioiAutoritzacionsLinux.odp)

Repositori SVN: https://anonymous@svn.projectes.lafarga.cat/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.

Instal·lació

$ 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

Execució

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)

Scripts alternatius

$ 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

Vegeu també

Enllaços externs