Winbind-Gruppensuche quälend langsam

Winbind-Gruppensuche quälend langsam

Ich verwende Winbind auf einem RHEL 6-System. Bis auf die Gruppensuche funktioniert alles einwandfrei, daher sudosind viele Befehle (einschließlich ) quälend langsam. Ich habe ein ausgeführt, stracedas zeigt, dass Winbind jede Gruppe und jeden Benutzer innerhalb jeder Gruppe für den aktuellen Benutzer sucht. Einige dieser Gruppen haben mehr als 20.000 Benutzer, sodass eine einfache Ausführung sudo60 Sekunden dauern kann.

Mir geht es eigentlich nur darum, den sudo-Befehl zu beschleunigen. Ideale Lösungen würden dies folgendermaßen machen:

  1. Gruppen mit mehr als X Benutzern werden nicht gesucht, oder
  2. sudo umgeht Gruppensuchen vollständig.

Hier ist meine aktuelle "smb.conf" fürwinbind:

workgroup = EXAMPLE
password server = AD1.EXAMPLE.ORG
realm = EXAMPLE.ORG
security = ads
idmap uid = 10000-19999
idmap gid = 10000-19999
idmap config EXAMPLE:backend = rid
idmap config EXAMPLE:range = 10000000-19999999
winbind enum users = no
winbind enum groups = no
winbind separator = +
template homedir = /home/%U
template shell = /bin/bash
winbind use default domain = yes
winbind offline logon = false

Antwort1

Ich hatte dasselbe Problem, nachdem ich sudo aktualisiert hatte, und erfuhr von Red Hat, dass sudo seinen Algorithmus zur Auflösung der Gruppenmitgliedschaft beim Wechsel von sudo-1.7.4p5-13.el6_3.x86_64 zu sudo-1.8.6p3-7.el6.x86_64 geändert hat. In sudo-1.7.4 wurde die Gruppenmitgliedschaft für alle in /etc/sudoers aufgeführten Gruppen aufgelöst, und wenn der Benutzername in der Liste gefunden wurde, wurden ihm Sudo-Berechtigungen gewährt. In sudo-1.8.6 wurde dies umgekehrt geändert – sudo holte eine Liste der Gruppen, bei denen der Benutzer Mitglied ist, und überprüfte dann, ob eine dieser Gruppen in sudoers aufgeführt war.

Dies führt zu getgrgid() für jede Gruppe, der der Benutzer angehört. Wenn einige Gruppen also groß sind, ist dies ziemlich langsam. Sie können entweder sudo herabstufen oder die großen Gruppen als leere Gruppen in Ihre lokale /etc/group-Datei einfügen, damit AD für sie nicht kontaktiert wird (vorausgesetzt, die großen Gruppen werden vom Linux-System nicht für eine Zugriffskontrolle referenziert).

Antwort2

Die alte Methode (also 1.7.x) kann durch Gruppen-Plugins rückgängig gemacht werden:

Defaults group_plugin="system_group.so"

Alternativ können Sie nur die Verwendung erzwingen /etc/group(keine Winbind-Lookups usw.):

Defaults group_plugin="group_file.so /etc/group"

Antwort3

Verschachtelte Gruppen deaktivieren winbind nested groups = false

Antwort4

oder fügen Sie einfach "winbind expand groups = 0" zu Ihrer Datei /etc/samba/smb.cnf hinzu (wechseln Sie dann zum lokalen Root-Konto und "/etc/init.d/winbind stop; /etc/init.d/samba restart; /etc/init.d/winbind start")

das erste Sudo nach einem Neustart kann einen Moment dauern (ist aber nicht so ein Dauerzustand wie bei Ihnen), und die nachfolgenden werden mit Sicherheit wie erwartet (schnell) erfolgen. Für alle anderen können Sie einfach ein lokales Administratorkonto für Sudo-Befehle verwenden (da Sie gezwungen sind, ein lokales Konto zu erstellen, oder?)

verwandte Informationen