Ankündigung

Einklappen
Keine Ankündigung bisher.

Auf System zugreifen?

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

  • 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
    Kostenlose Homepage
    Kostenlose Scripts
    Kostenloser Uploadservice


  • #2
    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

    Kommentar


    • #3
      Ich wills ja auch aufm Linux Server ausführen und nicht beim Clienten.
      Also ist serverseitig schon richtig
      Kostenlose Homepage
      Kostenlose Scripts
      Kostenloser Uploadservice

      Kommentar


      • #4
        das ist doch egal ob dein rechner ein server ist oder nicht.

        --> PHP kann nicht auf das system zugreifen.

        Nils aka XraYSoLo

        Kommentar


        • #5
          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.
          Kostenlose Homepage
          Kostenlose Scripts
          Kostenloser Uploadservice

          Kommentar


          • #6
            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.

            Kommentar


            • #7
              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

              Kommentar


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

                Kommentar


                • #9
                  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...
                  Kostenlose Homepage
                  Kostenlose Scripts
                  Kostenloser Uploadservice

                  Kommentar


                  • #10

                    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.

                    Kommentar


                    • #11
                      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?
                      Kostenlose Homepage
                      Kostenlose Scripts
                      Kostenloser Uploadservice

                      Kommentar


                      • #12
                        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"?

                        Kommentar


                        • #13
                          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.
                          [I]There is no spoon.[/I]

                          Kommentar

                          Lädt...
                          X