Ich habe eine TMUX-Sitzung, auf der ein Minecraft-Server ausgeführt wird, und ich erstelle eine Webschnittstelle für den Server.Fehler beim Senden von Befehlen an eine TMUX-Sitzung von PHP
Zur Zeit habe ich folgende Dokumente:
command.sh
#!/bin/bash
tmux send-keys -t minecraft C-z "[email protected]" Enter
index.php
<?PHP
if($_POST) {
$commandString = $_POST['inputCommand'];
$output = shell_exec('./command.sh $commandString');
echo "<pre>$output</pre>";
}
?>
<form method="post">
<input type="text" name="inputCommand" placeholder="Type Command"/>
<input type="submit" value="Execute" />
</form>
command.sh, dass in einem Terminal funktioniert kann ich Verwenden Sie alle Standardbefehle in der Art
Allerdings kann ich dieses Skript nicht von PHP mit der oben genannten Methode ausführen. Ich habe beide www-data und www-Benutzer zu sudoers hinzugefügt und versuchte,
shell_exec('sudo ./command.sh $commandString')
Aber das hat auch nicht funktioniert.
Wenn auf die Senden-Schaltfläche geklickt wird, wird Ausgabe ausgegeben, aber es ist leer.
Kann jemand bitte helfen, darauf hinzuweisen, wo meine Methodik zur Ausführung des Skripts falsch gelaufen ist?
BEARBEITEN Ich habe zwei Screenshots gemacht, eine vor und eine nachher, um weiter zu klären.
Was läuft falsch? Erhalten Sie einen Fehler? Was bekommst du als Ausgang? Welche Befehle versuchst du, die fehlschlagen? Ist dir klar, dass dies ein * klaffendes * Sicherheitsloch ist? –
Kein Fehler, Ausgabe ist leer, die Befehle sind oben. Dies gibt buchstäblich nichts zurück und der Befehl wird nicht ausgeführt. Deshalb bin ich so verwirrt und poste hier Ja, ich verstehe die Auswirkungen auf die Sicherheit, das ist hinter einem 2 separaten Login-Bildschirme. –
@EtanReisner bitte siehe oben, ich habe einen Screenshot zur Klärung gestellt –