Sudo-Berechtigungen durch LDAP-Gruppen über nslcd

Sudo-Berechtigungen durch LDAP-Gruppen über nslcd

Ich habe ein Problem mit meinen Sudo-Berechtigungen in einem Authentifizierungs-/Autorisierungs-Setup von MS ActiveDirectory zu Debian LDAP.

Was ich bisher habe
Ich habe nslcd mit libpam-ldap über LDAPs konfiguriert und die SSH-Anmeldung funktioniert prima.

getent passwd myuser
myuser:*:10001:10015:myuser:/home/myuser:/bin/bash

Auf meinem ActiveDirectory-Server ist das Unix-Paket installiert, das die erforderlichen Attribute wie posixGroup, posixAccount, gid, gidNumber, uid, uidNumber usw. hinzufügt.

Mein Beispielbenutzer sieht folgendermaßen aus:
(ich wähle sicherheitshalber 10000+)

cn: myuser
uid: myuser
uidNumber: 10015
gidNumber: 10000

Ich kann SSH-Anmeldungen einschränken, indem ich Folgendes zu /etc/nslcd.conf hinzufüge

filter passwd (&(objectClass=posixAccount)(|(memberOf=CN=group1,OU=groups,DC=domain,DC=com)(memberOf=CN=group2,OU=groups,DC=domain,DC=com)))

Dies gibt an, dass sich nur Benutzer mit objecClass=posixAccount und der Gruppe „group1“ oder „group2“ anmelden können.

So weit, so gut. Allerdings kann ich sudo nicht anweisen, diese Gruppen zu verwenden.

Folgendes habe ich versucht:
in /etc/sudoers

// This one works, but only because the user has gidNumber=10000 set. 
// It doesn't matter if a group with this ID actually exist or not. 
// So it's not really permission by LDAP group.
%#10000 ALL=(root) ALL


// This is what I want, but it doesn't work.
%group1 ALL=(root) ALL

Das Problem
Irgendwie muss ich sudo anweisen, den anfordernden Benutzernamen zu übernehmen, zu prüfen, zu welchen LDAP-Gruppen er gehört, und dann zu prüfen, ob die Berechtigungen für diese Gruppe ausreichen, um den Befehl auszuführen oder nicht.

Leider habe ich keine Ahnung, wo ich anfangen soll. Alles andere funktioniert bisher und ich hänge nur bei den Sudo-Berechtigungen fest. Ich habe darüber nachgedacht, das Feld gidNumber des Benutzers dem Feld gidNumber der Gruppe zuzuordnen, aber ich weiß nicht, ob die Zuordnung eines Benutzerfelds zu einem Gruppenfeld überhaupt möglich ist.

Ich glaube nicht, da die Zuordnung in nslcd wie folgt angegeben ist

map passwd field1 field2

und passwd sagt nslcd, dass es Benutzerfelder zuordnen muss. Anstelle von passwd könnte ich Gruppen verwenden, aber nicht beides.

Antwort1

Entschuldigen Sie den langen Beitrag, aber es scheint zu funktionieren. Ich hatte nur einen Tippfehler in der Sudoers-Datei. Es hat allerdings etwas lange gedauert, bis ich sie gefunden habe, da die Syntax zwar immer noch korrekt war, ich aber keine Befehle ausführen konnte.

Jetzt funktioniert es jedoch.

 // Problem was that one ALL was missing, allowing me to execute no root cmds.
 %group1 ALL=(root) !/bin/su

 // Fixed it
 %group1 ALL=(root) ALL, !/bin/su

Update: Ich habe es etwas spät bemerkt, aber ich habe auch Folgendes in /etc/nsswitch.conf geändert

sudoers:        ldap files

Ich dachte einfach nicht, dass es die Lösung war, weil ich immer noch den oben erwähnten Sudoers-Tippfehler hatte.

Problem gelöst :)

Antwort2

ich ging mitZuweisen lokaler Gruppen zu Benutzernüber pam_group, um die gleiche Funktionalität zu erhalten. In /etc/security/groups.confhabe ich die folgende Zeile hinzugefügt

*;*;%administrators;Al0000-2400;adm,sudo,lpadmin

Jeder LDAP-Benutzer, der zur LDAP-Gruppe gehört, wird also den lokalen Gruppen , , und auf der Box administratorszugeordnet . Scheint einfacher zu sein, als installieren zu müssen , es sei denn, ich übersehe etwas?admsudolpadminsudo-ldap

verwandte Informationen