Ist es möglich, ein Sudo-Frontend (wie Gksudo) zu verwenden, um die Privilegien des aktuellen Prozesses zu erhöhen? Ich weiß, ich kann folgendes tun:Wie sud ich den aktuellen Prozess?
sudo cat /etc/passwd-
Aber ich bin interessiert dies tun:
sudo-become-root # magic function/command
cat /etc/passwd-
ich in Python zu schreiben. Mein Anwendungsfall ist, dass ich ein Programm habe, das als Benutzer ausgeführt wird, aber möglicherweise Dateien zum Lesen/Schreiben, die root-Besitz sind. Ich möchte zur Eingabe eines Kennworts auffordern, Root-Rechte erlangen, tun, was ich brauche, und dann optional die Zugriffsrechte wieder löschen.
Ich weiß, ich könnte Admin-Logik und Nicht-Admin-Logik in separate Prozesse trennen, und dann nur den Admin-Prozess als root (mit einigen Kommunikation - PolicyKit/dbus wäre eine gute Passform hier). Aber ich hatte auf eine viel einfachere (wenn auch zugegebenermaßen risikoreichere) Lösung gehofft.
Ich denke so etwas wie Ausführen von Solaris ppriv durch Sudo, um dann die Berechtigungen des aktuellen Prozesses zu ändern. Was wie ein hacky-but-machbare Roundtrip aussieht. Aber soweit ich weiß, bietet Linux keinen PPriv an.
(Ich bin überrascht, das ist nicht offensichtlich bereits; es scheint wie eine nicht-ungewöhnliche Sache zu wollen und nicht scheinen scheinen eine Sicherheitslücke zu Eskalation im Prozess über Eskalation eines neuen Prozesses zu ermöglichen . ist
)
Wenn Sudo für Sie arbeitet, was ist mit su? – Dani
AFAIK, su würde mir eine Subshell zum Arbeiten geben. Was für die interaktive Nutzung in Ordnung ist. Aber ich möchte die Privilegien des gerade laufenden Prozesses erhöhen, keinen Shell-Subprozess. –
Das ist nicht wirklich eine Antwort, aber ich sehe den OpenSSH-Quellcode gerne als ein Modell für die Manipulation und Trennung von Privilegien. Im Gegensatz zu Ihrem cae denke ich, dass der ssh-Daemon mit erhöhten Rechten beginnt und dann weniger privilegierte Kinder selektiv abzweigt. –