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.