mdb2-nss-dump
Her følger det som er tenkt rundt bruk av nss-db til eksponering av MDB2 gruppe data.
Tanken er at vi skriver et skript, feks mdb2-nss-dump som skal lage groups data i BDB formated som libnss-db forstår. Tidligere har disse data-ene vært synket ved hjelp av unixsync, noe som krever mye kompleks logikk for håndtering og diffing av nåværende og ønsket tilstand. Ved a bytte til mdb2-nss-dump vil vi ganske enkelt kunne dumpe hele tilstanden til en BDB fil og så la NSS selv ta seg av switching mellom kildene. Dette innebærer at BDB data-ene, via getent lastes inn i LDAP, noe som vil skje "av seg selv" slik ting er satt opp idag eller ved at vi dister BDB filene (noe som imo. er dårlig løsning).
Følgende bør tas hensyn til i løsningen:
- Grupper som skal eksporteres må styres av /etc/itk/allowed_groups slik at ikke folk kan bli medlem av hva som helst ved å tukle med dataene i MDB
- GID skal ikke inn i MDB, foreslått løsning for dette er at gruppene som vi lar MDB styre også finnes i /etc/group for at det skal være authorativ kilde for GID. Innslagene der bør ikke ha noen medlemmer. (getgrnam er din venn)
- Gruppe medlemskapene som skal dumpes kan hentes fra MDB2 på lik linje som unixsync gjør, men nå trenger vi kune group name og username :)
unixsync kan da på sikt fases ut og de relevante delene skrives om til slette bruker skript.
Oppsett
unixsync.pl henter brukere og gruppetilhørigheter fra mdb2 og lager group.db, som er en BerkeleyDB, av dette. Den legger kun til grupper som ligger i /etc/itk/allowed_groups og gir en warning om grupper fra mdb2 som ikke er i den. Ved å legge til db etter group i /etc/nsswitch.conf, blir denne databasen lest av nss på samme måte som /etc/group. /root/ldapsync/passwd2ldap henter deretter inn informasjonen fra nss og sender den til ldap.
Databasen - fila group.db
I denne fila må hver gruppe stå tre ganger, med keyene ".gruppenavn", "0løpenummer" og "=gid". Verdiene må være null-terminert. Alle tre oppføringene skal ha den samme verdien i dette formatet:
gruppenavn:*:gid:bruker1,bruker2\0
group.db vil bli generert i perl av tillegget BerkeleyDB og skal legges i /var/lib/misc/. For å undersøke innholdet i en database kan man bruke "db4.8_dump -p group.db" fra pakken db4.8-util.
To do
- GID for grupper fra MDB bør flyttes til høyere nummer, f.eks. over 30000. Nå ligger det flere grupper med GID under 500.
Lenker: Start, medlemsdb2
Epost: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2011-12-10 21:03 | Revisjon: 8 (historie, blame) | Totalt: 1905 kB | Rediger