PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LDAP Gruppen auf lokale Gruppen mappen



wuesten.fuchs
07.09.09, 14:53
Nehmen wir an, man hat die gesamte Benutzerverwaltung (Linux-homogenes Netzwerk) im LDAP untergebracht. D.h. die Benutzer sind im LDAP, und die Gruppen sind im LDAP.

Da stellt sich die Frage, ob es möglich ist, die LDAP-Gruppen irgendwie auf lokale Gruppen abzubilden.
Einfaches Beispiel: Der LDAP-Benutzer Chris soll Mitglied der lokalen Gruppen "admin" und "vboxusers" sein.

Wie kann das umgesetzt werden?

Grüße,
Robert

bzImage
07.09.09, 22:06
hi,

schau dir mal "man net" an, dort kannst du mit net sam lokale gruppen mappen.

wuesten.fuchs
08.09.09, 10:02
Hi,
die net-Befehle beziehen sich auf Samba, was wir nicht verwenden. Sorry falls es nicht klar genug ausgedrückt war, wir verwenden einen Linux LDAP-Server mit Linux Clients. D.h. die LDAP-Gruppen sollen auf die lokalen Linux-Gruppen gemappt werden.

Ich hab mal probiert, den LDAP-Gruppen dieselben Namen wie den lokalen Gruppen zu geben. Also im LDAP ist z.B. eine Gruppe vboxusers angelegt, die auch lokal in der /etc/group vorhanden ist. Wenn ich jetzt einen LDAP-Benutzer dieser LDAP-Gruppe hinzufüge, scheint es der Client zu schlucken.
Kann ich das gefahrlos einsetzen, oder ist davon eher abzuraten?

bzImage
08.09.09, 10:37
Also meines erachtens ist dies nur möglich wenn du an der Workstation unter der Benutzerverwaltung den Nutzer Chris in die Gruppe lokale Administratoren aufnimmst.
Dass Clients die Gruppen der Domäne übernehmen können, ist mir nicht bekannt.

Aqualung
08.09.09, 20:50
Vllt. mit Hilfe von pam_ldap lösbar.

Henning14
08.09.09, 22:12
da ist das Zauberwort: PAM.

Kann sein, daß es mit den pluggable authentification modules geht. Ich weiß es nicht mehr genau. Aqualung müsste da mal konkreter werden... oder habe ich da ganz klein... ein vllt??? gelesen? ;-)

Ich hoffe, ich habe alles verstanden:
Deine Userdaten sind alle im LDAP, und auch nur dort. Wenn sich die Clients 'eh alle brav am Ldap anmelden, (richtiger: Erst Ihre Identität beziehen), lesen sie auch nicht mehr /etc/passwd oder /etc/group ein. In die Dateien kannst Du sonstwas reinschreiben. Sie werden schlicht (von LDAP) nicht gebraucht .


Kann ich das gefahrlos einsetzen, oder ist davon eher abzuraten?

Wenn Du jetzt doch ein Prg hast, daß diese Angaben erwartet, und sich um LDAP einen Dreck schert, kannst Du das ohne Probleme tun, schreib rein, was Du brauchst. Die LDAP Geschichte hat damit nix zu tun.

Aber Du willst ja die Gruppenzugehörigkeiten der ldap Datenbank in den lokalen Datenbanken /etc/passwd, /etc/group ... gespiegelt haben, oder?

Da liest Du die Datenbank aus und übergibst die Werte den Progrämmchen usermod oder useradd.

Da sehe ich kein Problem in der Machbarkeit ....

Aber wenn man für pam_ldap einen Eintrag schaffen könnte, der das bei jeder userneuanlage automatisch macht, wäre das vllt die kürzeste Lösung. Denn pam ist eh schon im Spiel, denke ich.

Der allereleganteste Weg wäre es natürlich für diese Software, die eine /etc/passwd erwartet, ein PAM Plugin zu haben. Dann würde diese schweinesoftware sich auch über LDAP die Daten holen können.

wuesten.fuchs
18.09.09, 15:14
Prima, mit pam_ldap klappte es! Einfach LDAP über PAM so eingebunden, dass ein getent passwd und getent group die Benutzer bzw. Gruppen aus dem LDAP mit anzeigt (hint: /etc/pam.d/* und /etc/nsswitch.conf).

In der /etc/passwd sind nur die vom System angelegten user drin (inklusive einem lokalen sudo-user als Fallback, damit ich auch ohne LDAP ins System komme), und in der /etc/group auch nur die lokalen Gruppen.

Die "richtigen" Benutzer sind alle im LDAP, und falls diese Benutzer auf dem Client bestimmten Gruppen angehören müssen, sind diese speziellen Gruppen mit demselben Namen nochmal im LDAP angelegt.

Um das nochmal am Ausgangsbeispiel zu verdeutlichen:

Der Benutzer chris existiert nur im LDAP. Auf den Clients gibt es in der /etc/group die lokale Gruppe vboxusers, da VirtualBox auf den Systemen installiert ist. Damit die Benutzer VirtualBox nutzen können, müssen sie dieser Gruppe hinzugefügt werden. Deshalb ist auch im LDAP eine Gruppe vboxusers angelegt, die als Gruppenmitglied den chris hat (er ist nicht Mitglied in der lokalen vboxusers-Gruppe). Und violà - es funktioniert!

Habe das in den letzten Tagen mit verschiedenen Programmen getestet, und es haben sich bisher noch keine Probleme ergeben.

Danke euch für den "Schubser" in die richtige Richtung!

Henning14
20.09.09, 00:12
Danke euch für den "Schubser" in die richtige Richtung!
:-x

er ist nicht Mitglied in der lokalen vboxusers-Gruppe). Und violà - es funktioniert!

Naja ;-) ... LDAP ignoriert eben die lokalen Daten.....

Mich interessierte Dein Thema, da ich der Novell-Schiene genauso verbunden bin, wie der Linux-Schiene.

Du magst jetzt fragen:
Was zum Teufel hat LDAP mit Novell zu tun?
Die Novell-Datenbank namens eDirectory (früher NDS) ist fast identisch mit LDAP. Beide sind hochkompatibel zum X.500 Standard.

Hier ist ein wesentlicher Grund, warum Novell Suse geschluckt hat: Wenn man Linux mit dem Hilfsmittel PAM ans eDirectory anbinden kann ist Novell Herr im Haus *lach*.

Ich liebe einfach beide: Novell & Linux. Sie passen gut zusammen. Eine unternehmensweite Datenbank wie die von Novell hat Linux einfach nicht zu bieten. Es dreht sich hier um grosse Netze mit tausenden von Usern. Dann kann Novell, respektive das eDirectory seine Möglichkeiten ausspielen.

Aber ich werde zu sehr offtopic *lach*

*duck und wech*

wuesten.fuchs
20.09.09, 10:42
<offtopic mode on>
Kein Problem :-)

Ich kenne eDirectory zwar nicht persönlich, gehe aber mal davon aus, dass es (zumindest zur Authentifizierung) besser skaliert als Linux+LDAP. Ich für meinen Teil hoffe jedenfalls, dass Linux (in Zusammenspiel mit LDAP) in Zukunft mehr Möglichkeiten zu Gruppenrichtlinien à la Active Directory - sprich Berechtigungen von Benutzern/Benutzergruppen - und eine engere Integration der Triple-A's bietet. Im Moment sind einige sehr interessante Projekte im Entstehen (z.B. FreeIPA von RedHat - leider nicht kompatibel zu OpenLDAP), bin gespannt, wie sich das weiterentwickelt.
<offtopic mode off>

L00NIX
20.09.09, 10:58
Wenn ich das richtig verstehe, möchstest du einen LDAP-Benutzer in lokale Gruppen aufnehmen. Das ist grundsätzlich möglich und benötigt keine Extra-PAM-Module. Die LDAP-Benutzer und Gruppen sollten einen definierten ID-Raum haben, z.B. ab 10000 aufwärts, so dass keine Konflikte mit lokalen Benutzern und Gruppen bestehen (normalerweise ab 500 oder 1000). Außerdem dürfen lokale Benutzer nicht den gleichen Anmeldenamen besitzen.

Wenn die LDAP-Benutzer mit dem Kommando


# getent passwd

und die Gruppen mit


# getent group

angezeigt werden reicht ein einfaches


# usermod -a -G admin,vboxusers ldap-benutzer

um den Benutzer in die lokale Gruppen admin und vboxusers aufzunehmen. Das wirkt sich ja "nur" auf die lokale /etc/group aus und ist somit kein Problem.

Die Gruppen "admin" "vboxusers" dürfen natürlich nicht im LDAP auftauchen, sonst gibt es lokal Widersprüche.

Gruß
L00NIX

wuesten.fuchs
20.09.09, 11:22
Jein - ich will die komplette Benutzerverwaltung im LDAP haben, also auch die Gruppenzugehörigkeit soll über das LDAP verwaltet werden.

Sprich wenn - um an das obige Beispiel anzuknüpfen - einem bestehenden Benutzer plötzlich Zugriff auf VirtualBox gewährt werden soll (dafür ist die Mitgliedschaft in der Gruppe vboxusers nötig), so wäre es eleganter, könnte der Admin das an einer zentralen Stelle im LDAP machen, anstatt den Benutzer an jedem einzelnen Client in die richtige Gruppe in /etc/group stecken zu müssen.

L00NIX
20.09.09, 14:14
Dann lege die LDAP-Gruppe vboxusers an und lösche diese Gruppe in der lokalen /etc/group. Wenn die lokale Gruppe überall die gleiche GID besitzt, musst du nicht mal Dateirechte anfassen.

wuesten.fuchs
20.09.09, 15:52
Hm, klingt logisch. Was mache ich aber mit bestehenden Systemgruppen wie plugdev, cdrom oder adm?

L00NIX
20.09.09, 15:56
Hm, klingt logisch. Was mache ich aber mit bestehenden Systemgruppen wie plugdev, cdrom oder adm?

Da diese lokal verwendet werden, solltest du sie einfach mit der gleichen GID im LDAP einrichten, aber die lokalen Gruppen auf jeden Fall bestehen lassen!

Wenn nur eine Linuxdistribution eingesetzt wird, sollten die GIDs 0-99 auf diesen Systemen identisch sein. Ich lege dafür aber nicht meine Hand ins Feuer...

Bei Debian-Derivaten werden die GIDs ab 100 dynamisch bei der Installation eines Pakets angelegt, diese unterscheiden sich also je nach Paketzusammenstellung und Reihenfolge der Paketinstallation.

Das, was du eigentlich für deine Anforderung brauchst, ist sowas wie "Gruppe in Gruppe aufnehmen", wie man es bei Windows machen kann. Schade, dass sowas mit Linux nicht geht bzw. ich wüsste nicht wie...

Gruß
L00NIX

wuesten.fuchs
20.09.09, 16:00
Da diese lokal verwendet werden, solltest du sie einfach mit der gleichen GID im LDAP einrichten, aber die lokalen Gruppen auf jeden Fall bestehen lassen!

Das war genau die Information, die ich gebraucht habe. Danke!


Wenn nur eine Linuxdistribution eingesetzt wird, sollten die GIDs 0-99 auf diesen Systemen identisch sein. Ich lege dafür aber nicht meine Hand ins Feuer...

Das, was du eigentlich für deine Anforderung brauchst, ist sowas wie "Gruppe in Gruppe aufnehmen", wie man es bei Windows machen kann. Schade, dass sowas mit Linux nicht geht bzw. ich wüsste nicht wie...

Jup, genau sowas wäre hilfreich. Weißt du von einer Methode, wie man schon bei der Installation eines Linux-Systems Gruppen bestimmte GIDs zuweisen kann mit dem Ziel, auf allen Nodes einheitliche GIDs zu haben?

L00NIX
20.09.09, 16:34
Weißt du von einer Methode, wie man schon bei der Installation eines Linux-Systems Gruppen bestimmte GIDs zuweisen kann mit dem Ziel, auf allen Nodes einheitliche GIDs zu haben?

Nein.

Ich denke auch nicht, dass es so eine Methode gibt, da die Dateien /etc/passwd und /etc/group meistens in einem Paket stecken und vordefiniert sind. Bei Bedarf werden dann Systemgruppen und -Benutzer hinzugefügt.

Ich bin mir nicht sicher, ob nicht wenigstens der untere Bereich inzwischen überall gleich ist, aber ich denke nicht. Zwischen den Linux-Distributionen sind teilweise sogar die Benutzernamen nicht einheitlich, ganz zu Schweigen von den Dateibesitzrechten.

Das wäre mal etwas, wo die LSB ansetzen sollte...

Gruß
L00NIX

wuesten.fuchs
20.09.09, 16:54
Das wäre mal etwas, wo die LSB ansetzen sollte...

Agreed. Trotzdem danke für deine (eure) Hilfe, war genau das, wonach ich gesucht habe!