[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

setuid(0) funktioniert nicht trotz effektiver Root-UID



Hallo,

ich habe ein Binary mit Rechten 4755, das nach dem Starten durch einen Nutzer ohne Root-Rechte mit Hilfe von setuid(0) nicht nur die effektive und die gespeicherte, sondern auch die reale UID auf 0 setzen soll (lvcreate braucht das wohl).

Das funktioniert auch, wenn ich das Programm manuell in der bash aufrufe. Allerdings soll es letztlich vom PAM-Modul pam_exec aufgerufen werden, doch da funktioniert setuid(0) nicht wie gewünscht, sondern die reale UID bleibt die des aufrufenden Nutzers. Wenn ich die Dateirechte nicht auf suid-root setze, sondern stattdessen explizit die Capability cap_setuid für das Binary setze, wird aus dem PAM-Modul heraus sogar die Ausführung des Programms mit "execve: Operation not permitted" ganz verweigert, wohingegen auch das beim Aufruf aus der Bash-Befehlszeile funtioniert.

Kann jemand mögliche Gründe nennen, warum im einen Fall die Ausführung nicht wie gewüscht funktioniert, obwohl zum Programmstart alle drei UIDs (reale, effektive und gespeicherte) jeweils denselben Wert haben wie im anderen, funktionierenden Fall?

Viele Grüße
  Christoph


Reply to: