Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > Server > Administration

Administration Alles rund um den Betrieb und die Konfiguration eigener Server (Apache, mod_rewrite, etc.)

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.01.2017, 21:23
Hubsi7 Hubsi7 ist offline
Besucher
 
Registriert seit: 18.04.2016
Beiträge: 31
Standard Shell_exec und screen

Hallo,
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
Mit Zitat antworten
  #2  
Alt 11.01.2017, 11:45
Marc Ermshaus Marc Ermshaus ist offline
Forum-Mitarbeiter
 
Registriert seit: 06.09.2004
Beiträge: 5.243
Standard AW: Shell_exec und screen

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)
Mit Zitat antworten
  #3  
Alt 11.01.2017, 21:09
Hubsi7 Hubsi7 ist offline
Besucher
 
Registriert seit: 18.04.2016
Beiträge: 31
Standard AW: Shell_exec und screen

Zitat:
Zitat von Marc Ermshaus Beitrag anzeigen
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.
Wenn der befehl als Linux-Befehl geht Also das Programm Funktioniert und ich diesen befehl in PHP ausführen will, Liegt das eindeutig am Programm wenn das nicht geht (und deswegen sollte ich mich bei TS3Musicbot melden). richtig?

~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)
Mit Zitat antworten
  #4  
Alt 12.01.2017, 09:12
quantor quantor ist offline
Engagierter Besucher
 
Registriert seit: 25.10.2012
Beiträge: 2.909
Standard AW: Shell_exec und screen

Zitat:
Zitat von Hubsi7 Beitrag anzeigen
und wenn ich dies dann (ohne sudo) in die Linux Konsole tippe, klappt alles wunderbar.
In welche Konsole? Auf dem Server? Bist du per ssh mit dem verbunden?
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
Mit Zitat antworten
  #5  
Alt 12.01.2017, 13:25
Hubsi7 Hubsi7 ist offline
Besucher
 
Registriert seit: 18.04.2016
Beiträge: 31
Standard AW: Shell_exec und screen

Zitat:
Zitat von quantor Beitrag anzeigen
In welche Konsole? Auf dem Server? Bist du per ssh mit dem verbunden?
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
Ja ich besitze einen Linux vServer. Auf dem ich die möglichkeit habe, mich per ssh manuell zu verbinden.
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
Mit Zitat antworten
  #6  
Alt 12.01.2017, 20:23
waepeasu waepeasu ist offline
Besucher
 
Registriert seit: 31.12.2015
Beiträge: 61
Standard AW: Shell_exec und screen

... 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:
shell_exec('screen -d -m -L sh /root/mb/$botverzeichnis/start.sh 2>&1');
__________________
__________________
Es gibt 1<<1 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?

Geändert von waepeasu (12.01.2017 um 20:25 Uhr)
Mit Zitat antworten
  #7  
Alt 12.01.2017, 20:28
Hubsi7 Hubsi7 ist offline
Besucher
 
Registriert seit: 18.04.2016
Beiträge: 31
Standard AW: Shell_exec und screen

Zitat:
Zitat von waepeasu Beitrag anzeigen
... 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:
shell_exec('screen -d -m -L sh /root/mb/$botverzeichnis/start.sh 2>&1');
Und wie soll das Funktionieren? Bei den 1. Beiden ist kein Pfad zur datei angegeben und beim letzten keine Parameter, die ich brauche
Mit Zitat antworten
  #8  
Alt 13.01.2017, 11:02
quantor quantor ist offline
Engagierter Besucher
 
Registriert seit: 25.10.2012
Beiträge: 2.909
Standard AW: Shell_exec und screen

Zitat:
Zitat von Hubsi7 Beitrag anzeigen
Ich möchte mir screen ein programm starten
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?
Mit Zitat antworten
  #9  
Alt 13.01.2017, 23:13
Hubsi7 Hubsi7 ist offline
Besucher
 
Registriert seit: 18.04.2016
Beiträge: 31
Standard AW: Shell_exec und screen

Zitat:
Zitat von quantor Beitrag anzeigen
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?
Das Ganze Problem liegt darin, dass wenn ich per php (shell_exe) den Befehl ob mit oder ohne Sudo nicht ausführen kann. Es gibt nur keine Fehlermeldung aus.
Wenn ich das ganze per ssh (also Putty oder sowas) das ganze mache, dann klappt alles wunderbar.
Mit Zitat antworten
  #10  
Alt 14.01.2017, 00:31
Kasalop Kasalop ist offline
Forum-Mitarbeiter
 
Registriert seit: 29.12.2006
Ort: München
Beiträge: 5.298
Standard AW: Shell_exec und screen

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?
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC