%20unterschiedliche%20POSIX-Gruppenmitgliedschaften%20haben..png)
Irgendeine Idee, wie man mit einem OpenLDAP-Server mit Unix-Clients das folgende Ziel erreichen kann
Ziel: a) Jeder Benutzer sollte über die LDAP-Servereinstellungen separate Zugriffsbeschränkungen für verschiedene Hosts (Unix-Server) haben. b) Jeder dieser angemeldeten Benutzer (sofern zulässig) sollte basierend auf den LDAP-Servereinstellungen separate Posixgroup-Mitgliedschaften auf verschiedenen Rechnern haben. Beispielsweise sollte der Benutzer janaki ein Sudo-Posixgroup-Mitglied auf Server-1, aber nicht auf Server-2 sein.
Das Teilziel A konnte wie folgt erreicht werden:
Erstellen Sie separate Gruppen (objectClass groupofNames) mit Mitgliedsattribut für jeden Rechner/Host, die separate Zugriffsbeschränkungen für Benutzer erfordern, indem Sie LDAP-Overlays (memberof und refint) verwenden. Fügen Sie diesen Gruppen (Typ groupofnames) im LDAP-Server Benutzer (posixAccount) hinzu, um den Authentifizierungszugriff auf jeden Server zu ermöglichen. Fügen Sie im Client-Rechner (Unix-Server) den Filter nss_base_passwd hinzu, um memberof=cn=group-name (Gruppenname, der diesen Server im LDAP darstellt) zu testen. Dies ist erfolgreich und funktioniert.
Was gefragt ist, ist, wie Teil B erreicht werden kann. Das heißt, welche Konfigurationen sind im OpenLDAP-Server und in den Unix-Clients erforderlich, um dies zu erreichen?
- Grüße Janaki
Antwort1
Sie können die Objektklasse posixGroup in LDAP verwenden. Mit dieser Objektklasse können Sie Gruppen erstellen, die Unix-Gruppen auf jedem Clientcomputer entsprechen. Sie können diesen Gruppen dann Benutzer hinzufügen, indem Sie das Attribut memberUid verwenden, das die UID des Benutzers angibt. Auf Clientcomputern können Sie den Filter nss_base_group in der Datei /etc/ldap.conf so konfigurieren, dass posixGroup-Objekte vom LDAP-Server abgerufen werden. Dadurch kann der Clientcomputer die Gruppenmitgliedschaftsinformationen vom LDAP-Server verwenden, um die Unix-Gruppenmitgliedschaft der Benutzer bei der Anmeldung zu bestimmen. Ich würde auch vorschlagen, das Modul pam_ldap zu verwenden, um Benutzer zu authentifizieren und ihre Gruppenmitgliedschaft bei der Anmeldung basierend auf den LDAP-Servereinstellungen festzulegen.
Bearbeiten 1(Referenzen finden Sie in den Kommentaren): Ja, Sie können die Objektklasse posixGroup und den Filter nss_base_group verwenden, um das Ziel zu erreichen, unterschiedliche Unix-Gruppenmitgliedschaften für unterschiedliche Benutzer auf unterschiedlichen Client-Rechnern zu haben.
Zu diesem Zweck können Sie im LDAP-Server für jede Gruppe, die Sie auf den Client-Rechnern verwenden möchten, PosixGroup-Objekte erstellen. Anschließend können Sie das Attribut memberUid verwenden, um die UIDs der Benutzer anzugeben, die Mitglieder der jeweiligen Gruppe sind.
Auf den Client-Rechnern können Sie den nss_base_group-Filter in der Datei /etc/ldap.conf konfigurieren, um die posixGroup-Objekte vom LDAP-Server abzurufen. Sie können beispielsweise die folgende Zeile zur Datei /etc/ldap.conf auf dem Client-Rechner hinzufügen:
nss_base_group ou=Groups,dc=example,dc=com?one
Dies führt dazu, dass der Clientcomputer die Gruppen-OU im LDAP-Server nach POSIXGroup-Objekten durchsucht und die Informationen aus diesen Objekten verwendet, um die Unix-Gruppenmitgliedschaft für die Benutzer bei der Anmeldung festzulegen.
Es ist möglich, das Modul pam_ldap zu verwenden, um Benutzer zu authentifizieren und ihre Gruppenmitgliedschaft basierend auf den LDAP-Servereinstellungen festzulegen, wenn sie sich anmelden. Das Modul pam_ldap kann so konfiguriert werden, dass es den LDAP-Server verwendet, um Benutzer zu authentifizieren und ihre Gruppenmitgliedschaft festzulegen, wenn sie sich beim Client-Computer anmelden.
Um das Modul pam_ldap zu verwenden, können Sie der Datei /etc/pam.d/common-auth auf dem Client-Rechner die folgende Zeile hinzufügen:
auth sufficient pam_ldap.so
Dadurch authentifiziert das Modul pam_ldap die Benutzer über den LDAP-Server und legt ihre Gruppenmitgliedschaft basierend auf den Informationen im LDAP-Server fest.