|
Administration Alles rund um den Betrieb und die Konfiguration eigener Server (Apache, mod_rewrite, etc.) |
![]() |
|
Themen-Optionen | Ansicht |
#1
|
|||
|
|||
![]() ich bin grad dabei eine Website zu programmieren, bei der (in diesem Fall) ein Ts3Musikbot gestartet werden muss. Jedoch habe ich mit dem Shell exec befehl noch überhaupt keine Erfahrung. Mein aktueller Code (aufgrund eines Stackoverflow Artikels) ist: PHP Quellcode:
$cmd = "sudo screen -d -m -L $botverzeichnis /root/mb/$botverzeichnis/start.sh -account $botacc -secretkey $secretKey -port $botport -webif-pw $adminpw -webif-pw-user $userpw -max-disk-space 100 -noquery";
$redirect = '2>&1'; // using variable substitution only for readability here shell_exec("$cmd $redirect", $output); Wenn ich mir die Variable cmd ausgeben lasse wird alles korrekt eingetragen und wenn ich dies dann (ohne sudo) in die Linux Konsole tippe, klappt alles wunderbar. Wäre toll wenn mir ja jmd ausführlich helfen kann und mit nicht nur einzelne brocken hinschmeist (Habe ich woanders schon erlebt) Mit besten Grüßen Andre |
#2
|
|||
|
|||
![]()
Ich glaube, da bist du beim Support vom Ts3Musikbot besser dran als in einem allgemeinen PHP-Forum. Die Frage hat im Grunde nicht viel mit PHP zu tun.
Dein Konsolenbefehl wird vermutlich zuerst mal daran haken, dass das sudo eine Passwort-Eingabe will, in die niemand was tippen wird. Wir sind eigentlich die falschen Ansprechpartner, um zu entscheiden, wie du am besten vorgehst. Du kannst dem PHP-Nutzer erlauben, sudo ohne Passwort ausführen zu können (oder wahrscheinlich das sudo-Passwort hardcoden), aber damit schießt du dir natürlich potenziell eine riesige Sicherheitslücke ins System, falls jemand beliebige Konsolenbefehle in dein Script injiziert bekommt. Dann hast du wen mit root-Rechten auf dem Server rumspuken. - http://askubuntu.com/questions/39281...out-a-password Möglicherweise lässt sich die Anwendung auch ohne sudo starten. Das beschreibst du ja entsprechend. Wobei du in dem Fall vermutlich mit deinem SSH-Account eingeloggt bist und nicht als der PHP-Nutzer/Webserver. Ich verschiebe den Thread mal nach Administration. Geändert von Marc Ermshaus (11.01.2017 um 11:52 Uhr) |
#3
|
|||
|
|||
![]() Zitat:
~Andre PS: Ich habe schon rechte vergeben, dass der Benutzer des ausführen kann ohne PW Eingabe. und das geht trz nicht. Geändert von Hubsi7 (11.01.2017 um 21:15 Uhr) |
#4
|
|||
|
|||
![]() Zitat:
Oder ist das alles auf einem Rechner? (Server und Programm) Dann ist noch die Frage was du mit screen willst? Das im zusammenhang mit einem webserver ist ungewöhnlich |
#5
|
|||
|
|||
![]() Zitat:
Es ist beides auf einem Server. Ich möchte mir screen ein programm starten (welches auf java basis programmiert ist) starten, sodass es witer läuft, bis ich den screen beende. ~ Andre |
#6
|
|||
|
|||
![]()
... wie sieht es damit aus?
PHP Quellcode:
shell_exec('sudo screen -d -m -L sh $botverzeichnis /root/mb/$botverzeichnis/start.sh -account $botacc -secretkey $secretKey -port $botport -webif-pw $adminpw -webif-pw-user $userpw -max-disk-space 100 -noquery 2>&1');
oder: PHP Quellcode:
$cmd ='sudo screen -d -m -L sh $botverzeichnis /root/mb/$botverzeichnis/start.sh -account $botacc -secretkey $secretKey -port $botport -webif-pw $adminpw -webif-pw-user $userpw -max-disk-space 100 -noquery';
$redirect = '2>&1'; shell_exec('$cmd $redirect', $output); basis: PHP Quellcode:
__________________
__________________ Geändert von waepeasu (12.01.2017 um 20:25 Uhr) |
#7
|
|||
|
|||
![]() Zitat:
|
#8
|
|||
|
|||
![]()
OK, ich habe mir noch mal den Thread durchgelesen, ich kann aber nicht erkennen was eigentlich deine Frage ist. Es fehlt eine Problembeschreibung.
Du sagst ja, der Code funktioniert, wenn du dich per ssh einloggst und ohne sudo aufrufst. Warum rufst du über PHP mit sudo auf? |
#9
|
|||
|
|||
![]() Zitat:
Wenn ich das ganze per ssh (also Putty oder sowas) das ganze mache, dann klappt alles wunderbar. |
#10
|
|||
|
|||
![]()
Wie ist denn der Rückgabewert? Gibt es Fehlermeldungen? Wie ist die Ausgabe von dem Befehl? Ist der Webserver Nutzer denn in sudoers eingetragen? Ansonsten: Debuggen.
Lg Kasalop
__________________
Es gibt 10 Arten von Menschen auf der Welt. Die die die binäre Mathematik verstehen und die die sie nicht verstehen! Zu welcher der Gruppen gehörst du? ![]() |
![]() |
Lesezeichen |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
shell_exec - Warning: shell_exec(): Cannot execute using backquotes in Safe Mode | rilight | PHP | 6 | 01.08.2011 10:22 |
screen.height | pmy180494 | JavaScript | 1 | 26.05.2010 08:15 |
Windows Blue-Screen | anno2007 | Sonstiges | 3 | 10.06.2007 14:13 |
white screen | claudio81 | PHP | 11 | 30.04.2007 17:57 |
Screen installieren? | omega | Administration | 3 | 01.11.2006 23:47 |