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

Re: setuid(0) funktioniert nicht trotz effektiver Root-UID



On 2018-11-14 13:57, Christoph Pleger wrote:


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?

setuid(0) liefert als Ergebnis 0 zurück, also keinen Fehler. Demnach schlägt das Setzen der realen UID nicht fehl, sondern es wird gar nicht erst versucht.

Viele Grüße
  Christoph


Reply to: