On Wed, Nov 30, 2005 at 04:13:56PM +0100, Michelle Konzack wrote: > einsetzen kann. Nun ist es so, das ich nicht so recht mit der > funktionsweise von LDAP vertaut bin, aber das Problem ist folgendes:
Mach Dich doch mal vertraut, fliegen doch genug Howtos rum im Netz, ganz abgesehen von diversen Büchern. > Wenn das System per pam_ldap configuriert ist und sich jemand einlogt, > woher kommen solche Sachen wie $HOME und $SHELL, bzw UID/GID? PAM ist nur die eine Seite der Medaille, die andere ist NSS, welche mit dem benötigten Modul (libnss_ldap, libnss_pgsql1, libnss_mysql...) und den entsprechenden Einträgen in /etc/nsswitch.conf aufgesetzt wird. Es geht also um 2 Dinge: die reine Authentifizierung (->PAM) und den Namensdienst, welcher über die libc und NSS geregelt wird (->NSS). > Wenn ich das richtig verstehe, guckt "login" bei einem login per > pam_* nach, ob der $USER einloggen darf und authentifiziert. Ja. > Das funktioniert bis hierhin mit allen, also > > 1) pam_unix => /etc/passwd, /etc/shadow > 2) pam_ldap => LDAP Server > 3) pam_pgsql => PostgreSQL Server > > Desweiteren gibt es ja auch noch Radius und NIS. Ja, wobei aber Radius und NIS jeweils mehr bieten als nur die reine Authentifizierung, NIS ist zum Beispiel _auch_ Namensdienst, vergleichbar mit einem LDAP-Setup. > Nun geht 'login' her und guckt unter 1) nach, welche Umgebung es > setzen muß. Ich gehe davon aus, das es bei 2) genauso ist und > die Infos in der LADP Datenbank gespeichert sind. Ja, hier wirkt libnss_ldap... > Die Frage ist, warum geht das nicht mit pam_pgsql? Dir fehlt der Namensdienst: libnss_pgsql1, s.o. > Kann es sein, das 'login' das im Sourcecode verankert hat, das es in > der LDAP Datenbank nach den Infos sieht ? Login nicht, sondern die libc weiss durch die Konfiguration in /etc/nsswitch.conf, wo sie die Infos herbekommt. > Ich verwende zur authentifizierung pam_pgsql und alle infos habe ich > bereits in meiner PostgreSQL in den Tabellen "auth", "userinfo". > > Also es geht mit jetzt nur noch, wie ich das Problem mit der UID, > GID, GECOS, $HOME und $SHELL sowie der Gruppen lösen kann. $ apt-cache show libnss-pgsql1 Allerdings weiss ich nicht, wie gut das funktioniert. Gerade diese Anfragen (uid, gid, ...) sind sehr häufig und damit "teuer". Ich kann mir vorstellen, dass eine Lösung mit PostgreSQL nicht so toll skaliert. LDAP hingegen ist für solche Anwendungen (sehr viele Lesezugriffe, wenig Schreibzugriffe) konzipiert und skaliert auch bei grossen Userzahlen noch sehr gut. Ausserdem kriegt man noch 2 Bonbons mit LDAP dazu: die Daten lassen sich sehr einfach replizieren (Ausfallsicherheit, Lastverteilung) und noch wichtiger: die Integration von Samba. Dadurch erhält man im heterogenen Netz die "single source of sign on", kann auch mit Samba BDCs realisieren usw... Gruss, Uwe -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

