Ich wollte eben einen User auf meinem Debian Wheezy Root-Server per „sudo“ volle Root-Rechte vererben. Für gewöhnlich sollte das mit einem simplen „adduser eineuserid sudo“ erledigt sein, doch welche Antwort gibt Debian beim testen der neuen „sudo“-Rechte?
Warum will sudo nicht? Nun … alle gewöhnlichen User liegen bei mir in einer OpenLDAP-Datenbank (nicht im passwd-File).
Nach einiger Recherche bin ich auf einen Beitrag im Debian-Bugreport gestoßen der auf einen Fehler in der Bibliothek „libldap-2.4“ hinweißt. Dieser Bug verhindert ein erfolgreiches „sudo“ für User im LDAP – doch scheinbar nur dann, wenn LDAP über SSL/TLS angesprochen wird.
Glücklichweiße findet sich in diesem Beitrag gleich ein Patch für dieses Problem – mit wenigen Befehlen kann dann der Bug leicht behoben werden:
root ~ # wget https://ftp.neutrino.es/debian/OpenLDAP/libldap-2.4-2_2.4.31-1.1_amd64.deb
root ~ # dpkg -i libldap-2.4-2_2.4.31-1.1_amd64.deb
Den gesammten Beitrag im Bug-Report findet ihr hier: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658896#104, zusätzlich habe ich den Patch hier bereit gestellt.
UPDATE: Der gleiche oben beschriebene Fehler tritt auch bei der Verwendung von „su“ auf (zB von root zu „gewöhnlichen User“). Der Patch schafft hier ebenfalls Abhilfe.
Allerdings tritt bei Verwendung des Patches ein neues Problem auf. Da der Patch dem libldap-Paket eine andere Versionsnummer zuteilt, gelten viele Abhängigkeiten nicht mehr erfüllt. Als Umgehung habe ich die Version im Patch-Paket auf die originale Version entsprechend umgestellt. Der modifizierte Patch ist hier bereit gestellt. Aber Achtung: Das Paket „libldap“ muss anschließend als „zurückgehalten“ markiert werden (siehe https://www.robhost.de/adminblog/archives/362-Pakete-vom-Update-aussschliessen-DebianUbuntu.html), ansonsten wird es bei einem apt-get upgrade wieder überschrieben.