Ankündigung

Einklappen
Keine Ankündigung bisher.

Auf System zugreifen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • h3ir
    hat ein Thema erstellt Auf System zugreifen?.

    Auf System zugreifen?

    Guten Tag,
    ich habe ein Linux Debian 3.1 Sarge Root Server und wollte mich mal Informieren, wie man mit PHP einen Konsolen Befehl als root übergibt?
    z.B. ich will mein Server neustarten, das ich dann einfach mit einem PHP Script neustarten kan.
    Jetzt kommt bestimmt: machs doch mit Plesk. Mach ich auch Allerdings wollte ich etwas kompliziertere Sachen damit machen. Ich brauche nur eine Möglichkeit einen Befehl zu übergeben.
    Ich hatte bislang nur den Befehl system(); gefunden. Haut aber irgendwie nicht hin.
    Grüße aus Delmenhorst

  • levarris
    antwortet
    Zitat von h3ir Beitrag anzeigen
    Guten Tag,
    ich habe ein Linux Debian 3.1 Sarge Root Server und wollte mich mal Informieren, wie man mit PHP einen Konsolen Befehl als root übergibt?
    z.B. ich will mein Server neustarten, das ich dann einfach mit einem PHP Script neustarten kan.
    Jetzt kommt bestimmt: machs doch mit Plesk. Mach ich auch Allerdings wollte ich etwas kompliziertere Sachen damit machen. Ich brauche nur eine Möglichkeit einen Befehl zu übergeben.
    Ich hatte bislang nur den Befehl system(); gefunden. Haut aber irgendwie nicht hin.
    Grüße aus Delmenhorst
    Also, zunächst richtest du für den User mit dem dein Webserver läuft einen sudo eintrag für shutdown ( den ganzen Pfad findest du als root mit "which shutdown", ich kenn mich mit Debian nicht aus - aber es müsste auch unter /sbin/shutdown sein ). Wichtig ist, dass dieser sudo-eintrag mit dem NOPASSWD Tag angelegt ist.

    Naja, der Rest ist eigentlich recht einfach, sagen wir mal du willst nach 3 Sekunden neustarten:
    PHP-Code:
    <?php
    $sCmd 
    "sudo /sbin/shutdown -t3 -r";
    shell_exec$sCmd );
    ?>
    Anmerkung: ich habe mit Absicht nicht den "reboot" Skript im Beispiel aufgenommen, weil das je nach System verschieden sein kann und nicht ausprobiert habe ob sudoen bei dem auch problemlos funktioniert.

    Einen Kommentar schreiben:


  • David
    antwortet
    Hä? Was?
    Wo behaupte ich denn, dass Du für rmdir immer root Rechte brauchst? Keine Unterstellungen bitte.
    Ausserdem habe ich nie behauptet, dass es eine sudo Funktion in PHP gibt.

    Wie war das jetzt mit der Definition von "System"?

    Einen Kommentar schreiben:


  • h3ir
    antwortet
    wenn deiner meinung nach PHP nicht auf System zugreifen kann,
    dann funktioniert rmdir eigentlich gar nicht.
    Weil man es als ROOT ausführen muss.
    Daher eigentlich sudo(rmdir("hund"));
    da es aber die Funktion sudo nicht gibt in PHP, kann man eigentlich nicht löschen. Oder?

    Einen Kommentar schreiben:


  • David
    antwortet

    Dann definiere mal bitte "System", wenn das Dateisystem nicht zum "System" dazugehört.

    Und zu
    Zitat von h3ir
    wollte mich mal Informieren, wie man mit PHP einen Konsolen Befehl als root übergibt?
    z.B. ich will mein Server neustarten, das ich dann einfach mit einem PHP Script neustarten kan.
    Zum Neustarten brauchst Du in irgendeiner Weise root Rechte. Dein Webserver-Skript wird ja wohl hoffentlich nicht standardmäßig mit root Rechten laufen. Also brauchst Du sehr wohl so etwas wie sudo. Es gibt natürlich noch andere Möglichkeiten, aber "einfach mal so irgendwie" funktioniert das nicht.

    Einen Kommentar schreiben:


  • h3ir
    antwortet
    sudo xD... benötige ich nicht, wenn ich eine Datei habe, dessen Benutzer der gleiche Benutzer ist wie die PHP Datei.

    Übrigends braucht Ihr mir keine Wikipedia Einträge zu Linux Befehlen zu schicken (bin Linux User und das schon lange)

    @David: wenn du eine Datei löscht, wird nicht aufm System zugegriffen. Nur wenn ich Datum einstelle oder per apt-get Updates runterladen will...

    Einen Kommentar schreiben:


  • David
    antwortet
    Was ist daran Zweckentfremdung?
    Selbst wenn nur eine Datei eingelesen wird, greift php auf "das System" zu, oder?

    Einen Kommentar schreiben:


  • XraYSoLo
    antwortet
    Zitat von David Beitrag anzeigen
    h3ir: Schau Dir mal su oder besser sudo an. sudo - Wikipedia, the free encyclopedia

    Und ob es das kann.
    aber auch nur eingeschränkt und das ist zweckentfremdung.

    Nils aka XraYSoLo

    Einen Kommentar schreiben:


  • David
    antwortet
    h3ir: Schau Dir mal su oder besser sudo an. sudo - Wikipedia, the free encyclopedia

    Zitat von XraYSoLo
    --> PHP kann nicht auf das system zugreifen.
    Und ob es das kann.

    Einen Kommentar schreiben:


  • h3ir
    antwortet
    Mein Rechner ist kein Server.
    Mein Server ist ein Server.

    Es ist "möglich" befehle auszuführen!!!
    Ich habs getestet mit system("date");

    Damit wurde mir die Serverzeit angezeigt.
    Mit system("ffmpeg --help"); wurde mir die Hilfe von ffmpeg angezeigt.
    Also ist es möglich allerdings kann ich nicht:
    system("ffmpeg -i datei.avi datei2.flv"); oder ähnliches!

    Daher will ich wissen ob ich eine Konsolen Session vorgaukeln kann. Root-Zugriff habe ich.

    Einen Kommentar schreiben:


  • XraYSoLo
    antwortet
    das ist doch egal ob dein rechner ein server ist oder nicht.

    --> PHP kann nicht auf das system zugreifen.

    Nils aka XraYSoLo

    Einen Kommentar schreiben:


  • h3ir
    antwortet
    Ich wills ja auch aufm Linux Server ausführen und nicht beim Clienten.
    Also ist serverseitig schon richtig

    Einen Kommentar schreiben:


  • XraYSoLo
    antwortet
    geht mit PHP nicht, is rein serverseitig.

    exec() ruft zwar ein externes programm auf, PHP kann damit aber nichts anfangen.
    für sowas bräuchtest du z.b. ASP oder JSP.

    Nils aka XraYSoLo

    Einen Kommentar schreiben:

Lädt...
X