Sie werden Unterstützung und viel Vertrauen von Ihrem Systemadministrator benötigen. Gewöhnliche Benutzer können die ausführbare Datei ihrer Wahl im Namen anderer Benutzer nicht ausführen, Punkt.
Sie kann Ihre Anwendung mit den richtigen Einstellungen zu /etc/sudoers
hinzufügen und Sie können sie 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
für Ihre binäre ausführbare Datei ausführt und Sie können sie 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")
enthält. Diese ausführbare Datei kann suid-nobody sein (siehe oben) und Sie können your-application
frei ändern.
Ich hoffe, es hilft,
Soweit ich weiß, können Sie das nicht, es sei denn, Sie sind root oder Sie haben sudo eingerichtet, damit Sie zwischen den Benutzern wechseln können. Oder Sie können Ihre ausführbare Datei das suid-Bit darauf eingerichtet haben, und es von niemandem besitzen. Aber das erfordert auch Root-Zugriff.
Der Benutzer "nobody" ist immer noch ein Benutzer. Ich bin mir nicht sicher, was deine Argumentation ist, wenn das Programm als niemand läuft, es wird keine zusätzliche Sicherheit hinzufügen. Sie öffnen sich eher für andere Probleme.
Ich würde der Empfehlung von squadette folgen, eine Hilfsanwendung zu verwenden.
calife
ist eine Alternative zu sudo
.
Calife ist ein kleines Programm, das es einem UNIX-Systemadministrator ermöglicht, root (oder ein anderer Benutzer) auf seinen Maschinen zu werden, ohne das root-Passwort zu vergeben, das er selbst besitzt.
Ich bin heute über das Setuid-Sandbox -Projekt gelaufen, während ich LWN gelesen habe, was genau das tut, was ich suche für den richtigen Weg.