PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell Script per web starten (als anderer user)



Jut4h.tm
21.04.2012, 08:32
Hallo,
Es geht um Folgendes:
Ich habe auf einem Root Server einen Minecraft Server und ein start / stop script (sh)

Jetzt möchte ich diese Scripts aus dem Internet ohne ssh starten können aber über einen von mir zugewiesenen Benutzer gibt es da eine Möglichkeit?

es muss nicht über http sein Hauptsache funtzt ich kann auch was coden dafür in java oder c ... am liebsten wäre mir natürlich php

nur die Kernfrage ist halt ob sowas überhaupt geht ich habe nicht viel ahnung von den Rechen unter linux...

meine Ansätze sind:

- PHP exec, über shell befehle einloggen als ein user und das script starten

-JAVA ein Programm unter dem Benutzer laufen lassen über den ich die Operationen ausführen will und das java Programm die Scripts starten lassen dann müsste das Programmm ja mit den rechten des Benutzers laufen oder liege ich da falsch?


Danke für die Hilfe schonmal ;-)

SFX
21.04.2012, 10:04
/etc/sudoers
Deinen Webuser eintragen und dann nur das Script erlauben.
Es darf kein Passwort nötig sein.

Danach kannst du über



<?php
system('sudo -u sfx /opt/minecraft/whatever.sh start');
echo 'success';
Deinen Server starten. Der Server sollte als daemon gestartet werden, damit das Script den Server nur anstößt und nicht noch ewig weiter läuft.

Brotipp: Beschränke am besten auch, dass sich dein Webuser nur als sfx anmelden kann. Normal kann er das für jeden User, auch den Root. Sollte jetzt jemand Zugriff auf den Webuser bekommen und gleichzeitig Schreibrechte auf die whatever.sh haben könnte er deinen Server rooten.

Starflow
21.04.2012, 10:11
http://www.sudo.ws/sudo/sudo.man.html <-- -u
http://www.sudo.ws/sudo/sudoers.man.html <-- CmdAlias

/E: Damn, 2late