Sie wird benötigen Unterstützung und viel Vertrauen von Ihrem Systemadministrator. Gewöhnliche Benutzer können die ausführbare Datei ihrer Wahl nicht im Auftrag anderer Benutzer ausführen, Punkt.
Sie kann Ihre Anwendung zu /etc/sudoers
mit den richtigen Einstellungen hinzufügen, und Sie können es wie mit sudo -u nobody
ausführen. Dies funktioniert sowohl für Skripts als auch für ausführbare Binärdateien.
Eine andere Option ist, dass sie chown nobody
und chmod +s
auf Ihrer binären ausführbaren Datei tun wird und Sie können es direkt ausführen. Diese Aufgabe muss bei jeder Änderung der ausführbaren Datei wiederholt werden.
Dies könnte auch für Skripte funktionieren, wenn Sie eine kleine Hilfsprogrammdatei erstellen, die einfach exec("/home/you/bin/your-application")
tut. Diese ausführbare Datei kann suid-nobody (siehe oben) gemacht werden und Sie können your-application
frei ändern.
Hoffe, dass es hilft,
Vielen Dank. Ein zusätzlicher Kommentar: Es scheint, dass Sie stattdessen auch seteuid() verwenden müssen, da setuid für root reserviert ist. Ich verwalte meinen eigenen Ubuntu-Desktop, aber ich schätze die Sorge für diejenigen, die das nicht tun. – jldugger
seteuid() kann auch von Nicht-Root-Benutzern nur sehr eingeschränkt verwendet werden. Man-Seiten auf Seteuid() und Setreuid() haben fast alle Details. – squadette
Bitte markieren Sie die Antwort als "akzeptiert", wenn dies der Fall ist. Vielen Dank, – squadette