![](https://seccdn.libravatar.org/avatar/4e2d3dc2635a5151bc83a13a8f25a937.jpg?s=120&d=mm&r=g)
On 3/17/06, luisa merenda <merenda@gmx.net> wrote:
Von: "Karsten Künne" <karsten.kuenne@gmail.com>
Das ist krank, so was habe ich ja noch nie gesehen. Viel zu umständlich. Ja du hast recht deswegen wollte ich es ja ändern.
Schon besser, aber den Ast mit den Hostnamen würde ich weglassen. Soweit ich weiss, unterstützt pam_ldap doch das "host"-Attribut. D.h., zu jedem User-Object fügst Du ein Attribut "host=hostname" hinzu und pam_ldap sorgt dann dafür, dass sich der User nur auf diesem Host einloggen kann. Das host-Attribut kann auch mehrfach auftreten. Danke für den Tip :) Ich habs gefunden, dass ist genau das was ich gesucht habe! Aber irgendwie funkt das mit :( Ich hab dem User ldap_user1 über phpLDAPadmin das Attribut "host" hinzugefügt. Dem Attribut habe ich dann einen Maschinen Namen angefügt mars. Auf in der ldap.conf der Maschine mars habe ich dann folgenden eintrag eingestellt:
pam_check_host_attr yes
Wenn ich dann mit getent passwd eine Abfrage starte, werden mir trozdem alle User angezeigt, was mache ich falsch?
Das ist ja auch richtig so, die User sind alle bekannt, aber sie sollten sich nicht einloggen können, wenn sie nicht den Host im host-Attribut haben. Das sind zwei verschiedene Mechanismen . Das getent-Programm benutzt den Namensdienst, der mit nsswitch.conf eingestellt wird und kümmert sich nicht um das host-Attribut. Beim Login wird der PAM-Mechanismus benutzt, d.h., die pam_ldap-Library guckt nach dem host-Attribut und lässt den Benutzer nur rein, wenn der Wert des host-Attributs mit dem Hostnamen übereinstimmt. I.A. ist das auch das, was man haben will. Es gibt auch noch eine andere Möglichkeit, mit sogenannten "+"-Einträgen in /etc/passwd. Dazu musst Du in /etc/nsswitch.conf folgendes eintragen: ... passwd: compat passwd_compat: ldap .... und dann in /etc/passwd auf jedem Host: .... +user1 +user2 ... usw.. Das würde dann den entsprechenden Effekt haben, dass alle User, die keinen "+"-Eintrag haben, auf dem Host auch nicht bekannt sind und von getent nicht angezeigt werden. Der Nachteil ist allerdings, dass man dann die /etc/passwd-Files auf jedem Host pflegen muss. Das widerspricht irgendwie der zentralisierten Benutzerverwaltung durch LDAP. Gruss, Karsten.