Skocz do zawartości
Zaloguj się, aby obserwować  
jensej

serwer control www

Polecane posty

Wita.

Próbuję wdrożyć na swój serwer panel dzięki któremu będe mógł odpalać serwer gry przez WWW.

 

zrobiłem tak:

 

pico /etc/init.d/theforgottenserver

 

#!/bin/sh
#
# Startup and signals management script for TheForgottenServer
#

case "$1" in
  start)
        echo -n "Starting theforgottenserver: "
        cd $2 && screen -AdmS ./theforgottenserver
        echo "done."
        ;;
  stop)
        echo -n "Shutting down theforgottenserver: "
        killall -TERM theforgottenserver
        echo "done."
        ;;
  kill)
        echo -n "Killing theforgottenserver: "
        killall -KILL theforgottenserver
        echo "done."
        ;;
  quit)
        echo -n "Quitting theforgottenserver: "
        killall -QUIT theforgottenserver
        echo "done."
        ;;
  restart)
        $0 stop
        $0 start
        ;;
  reload)
        echo -n "Reloading theforgottenserver: "
        killall -CONT theforgottenserver
        echo "done."
        ;;
  save)
        echo -n "Saving theforgottenserver data: "
        killall -HUP theforgottenserver
        echo "done."
        ;;
  clean)
        echo -n "Cleaning theforgottenserver map: "
        killall -TRAP theforgottenserver
        echo "done."
        ;;
  refresh)
        echo -n "Refreshing theforgottenserver map: "
        killall -CHLD theforgottenserver
        echo "done."
        ;;
  close)
        echo -n "Setting theforgottenserver gamestate to closed: "
        killall -USR1 theforgottenserver
        echo "done."
        ;;
  open)
        echo -n "Setting theforgottenserver gamestate to normal: "
        killall -USR2 theforgottenserver
        echo "done."
        ;;
  *)
        echo "Usage: $0 {start path|stop|kill|quit|restart|reload|save|clean|refresh|close|open}"
        exit 1
esac

exit 0

 

visudo

www-data ALL= NOPASSWD: ALL

 

no i oczywiście w /var/www/control

 

<?php
$path = "/home/ots";
$options = array("start" => true, "stop" => true, "kill" => true, "quit" => false, "restart" => true, "reload" => true, "save" => true, "clean" => true, "refresh" => false, "close" => true, "open" => true);

echo "<html>
    <head>
        <meta content=\"text/html; charset=UTF-8\" http-equiv=\"content-type\">
        <title>TheForgottenServer WWW Control</title>
    </head>
    <body style=\"color: rgb(0, 0, 0); background-color: rgb(204, 204, 255);\" alink=\"#000099\" link=\"#000099\" vlink=\"#990099\">\n";
if(isset($_GET['do']) && in_array($_GET['do'], $options) && $options[$_GET['do']])
{
    $output = shell_exec("/usr/bin/sudo /etc/init.d/theforgottenserver ".$_GET['do'].($_GET['do'] == "start" ? " ".$path : ""));
    echo nl2br($output)."\n<br />\n<a href=\"".$_SERVER['HTTP_REFERER']."\">&raquo Back</a>\n";
}
else
{
    echo "\t\tAvailable options:<br />\n";
    foreach($options as $option => $enabled)
    {
        if($enabled)
            echo "\t\t<br />\n\t\t» <a href=\"".$_SERVER['PHP_SELF']."?do=".$option."\">".ucfirst($option)."</a>\n";
    }
}
    echo "\t</body>
</html>";
?>

 

jednak po wybraniu komendy start z panelu nie ma reakcji. Widnieje jedynie button <<back.

 

 

Poproszę o jakieś porady.

Edytowano przez jensej (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Logi?

 

 

chmod +x /etc/init.d/theforgottenserver
 

 

 

Edit: A sudo masz zainstalowane? Bo z tego co widzę to masz wymagane a podejrzewam że nie instalowałeś :)

Edytowano przez Kamikadze (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

sudo is already the newest version.
 

sudo jest.

 

chmod: cannot access `/etc/init.d/theforgottenserver': No such file or directory
 

zapomniałem napisać o tych chmodach

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jest w ogóle ten plik w tej lokalizacji: /etc/init.d/theforgottenserver

 

Pozatym, jeśli ktoś umieści skrypt php na serwerze to będzie mógł zrobić wszystko :) skoro dajesz uprawnienia dla usera www-data na sudo.

Jeśli już to ustaw sudo dla tego usera bez hasła tylko dla tej komendy a nie dla wszystkich.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

spróbuj z palca wpisać komendę rozruchu jak się uda to zobacz czy nie masz zablokowanej funkcji shell_exec w php.ini

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×