Wie starte ich ein Programm als niemand?

8

Ich möchte, dass ein benutzerprivilegierter (nicht root) Prozess neue Prozesse als Benutzer nobody startet. Ich habe einen direkten Aufruf von setuid versucht, der mit -1 EPERM auf Ubuntu 8.04 fehlschlägt:

%Vor%

Wie soll ich das stattdessen tun?

    
jldugger 15.09.2008, 20:55
quelle

5 Antworten

14

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,

    
squadette 15.09.2008, 21:02
quelle
1

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.

    
zigdon 15.09.2008 20:57
quelle
0

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.

    
Hugh Buchanan 15.09.2008 21:21
quelle
0

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.

    
Allan Wind 15.09.2008 21:15
quelle
0

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.

    
jldugger 15.02.2013 01:38
quelle

Tags und Links