php variable in Shell übergeben

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

  • php variable in Shell übergeben

    Hallo Leute !

    Ich habe folgendes Shell Skript gebaut

    #!/bin/bash

    #read -p "Username: " USERNAME
    #read -p "Passwort: " PASSWORT
    #read -p "Virtueller Host: " VHOST
    #read -p "Administrator Mail: " ADMAIL
    useradd -d /kndhome/$USERNAME -m -G webusers $USERNAME
    mkdir /kndhome/$USERNAME/www
    mkdir /kndhome/$USERNAME/cgi-bin
    cp /home/joomlaarchiv/core/deutsch/joomla1_0_11_de/www/* /kndhome/$USERNAME/www/ -R
    # in apache file schreiben
    echo "#" >> /etc/apache2/conf.d/selfinstall.conf
    echo "########## $USERNAME.asd.at ############" >> /etc/apache2/conf.d/selfinstall.conf
    echo "#" >> /etc/apache2/conf.d/selfinstall.conf
    echo "<VirtualHost *>" >> /etc/apache2/conf.d/selfinstall.conf
    echo "ServerName $VHOST.members.asd.at" >> /etc/apache2/conf.d/selfinstall.conf
    echo "ServerAdmin $ADMAIL" >> /etc/apache2/conf.d/selfinstall.conf
    echo "DocumentRoot /kndhome/$USERNAME/www" >> /etc/apache2/conf.d/selfinstall.conf
    echo "ScriptAlias /cgi-bin/ /kndhome/$USERNAME/www/cgi-bin" >> /etc/apache2/conf.d/selfinstall.conf
    echo "CustomLog /var/log/apache2/kunden/access/$USERNAME.members.asd.at combined" >> /etc/apache2/conf.d/selfinstall.conf
    echo "ErrorLog /var/log/apache2/kunden/error/$USERNAME.members.asd.at" >> /etc/apache2/conf.d/selfinstall.conf
    echo "<IfModule mod_php4.c>" >> /etc/apache2/conf.d/selfinstall.conf
    echo " php_admin_flag display_errors on" >> /etc/apache2/conf.d/selfinstall.conf
    echo " php_admin_flag register_globals off" >> /etc/apache2/conf.d/selfinstall.conf
    echo "</IfModule>" >> /etc/apache2/conf.d/selfinstall.conf
    echo "</VirtualHost>" >> /etc/apache2/conf.d/selfinstall.conf
    echo "#" >> /etc/apache2/conf.d/selfinstall.conf


    jetzt möchte ich jedoch die Variablen

    $USERNAME
    $PASSWORT
    $VHOST
    $ADMAIL

    von einen PHP formular an diesen Shell Skript übergeben

    Ich mach da anscheinend noch irgendwo einen fehler kann mir da bitte wer weiterhelfen ich schaff es leider nicht das ich nur mal die variable $USERNAME übergeben kann (Das Shell Skript läuft zu 100%)

    <?php
    echo "<form action=\"\" method=\"POST\">\n";
    echo "<input type=\"text\" name=\"USERNAME\">";
    echo "Adduser"."<br>";
    echo "User Anlegen: ".shell_exec("sudo useradd $USERNAME -g webusers");
    echo "<input type=\"submit\">";
    echo "</form>";
    ?>


    sudo ist ebenfalls richtig konfiguriert da andere skripte mit sudo laufen !

    Besten Dank

  • #2
    Hiiiiilfeee.[list=1][*]Prüfen ob Anfrage über POST kommt ( if ( ! empty ( $_POST [ 'username' ] ) ) )[*]Führe nie (!) ungeprüften Code in der Shell aus[*]register_globals in der php.ini ausschalten und mit $_POST [ 'username' ] arbeiten[*] Debuggen! Gib den Code der in der Shell ausgeführt werden soll aus und prüfe ob er so in Ordnung ist[/list=1]
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      variable mit sudo wird nicht übergeben

      Hallo!

      Ich bin schon verzweifelt !

      sudoers hab ich angegeben das www-data das script ausführen darf !

      wenn ich

      shell_exec("sudo /pfad/script.sh");

      ohne variablen funktioniert das problemlos wenn ich aber variablen von meinen PHP Script mitgeben möchte !

      shell_exec("sudo /pfad/script.sh $USERNAME");
      auch
      shell_exec("sudo '/pfad/script.sh $USERNAME"');
      geht nicht !


      hab ich oin meiner apache error.log drin:

      We trust you have received the usual lecture from the local System
      Administrator. It usually boils down to these three things:

      #1) Respect the privacy of others.
      #2) Think before you type.
      #3) With great power comes great responsibility.

      Password:


      weiss da wer rart ??

      Kommentar


      • #4
        du sollst tontechnikers beitrag nicht ignorieren.
        teste doch erst mal, ob der username richtig übertragen wird.

        Kommentar


        • #5
          Hallo !

          wie mach ich das wenn mich sudo nicht lässt ??

          <?php

          $USERNAME="666";
          $PASSWORT="666";
          $VHOST="666";
          $ADMAIL="666@dfg.de";
          shell_exec("sudo '/home/joomlahosting/www/joomla/adduser.sh $USERNAME'";
          ?>

          Hat da noch wer ne idee ??

          mfg.
          erti

          Kommentar


          • #6
            Wenn du nicht auf die Hilfe hier eingehst, wird es schwer dir zu helfen.

            Kommentar


            • #7
              Hallo !

              das problem liegt doch irgendwie am sudo, oder nicht ?

              wenn ich

              shell_exec("sudo '/home/joomlahosting/www/joomla/adduser.sh'");

              wird das shell skript ausgeführt !
              wenn ich aber eine variable dazuschreibe z.b. so:

              shell_exec("sudo '/home/joomlahosting/www/joomla/adduser.sh $USERNAME'");

              dann kommt im meinen logfile

              We trust you have received the usual lecture from the local System
              Administrator. It usually boils down to these three things:

              #1) Respect the privacy of others.
              #2) Think before you type.
              #3) With great power comes great responsibility.

              Password:


              wie soll ich das prüfen ?
              wenn mich sudo nicht lässt ???

              Kommentar


              • #8
                dass du liest, was man dir antwortet, bezweifele ich gerade.

                du sollst prüfen, ob die variable übertragen wurde, indem du sie ausgibst.

                Kommentar


                • #9
                  OffTopic:
                  Aber hauptsache, du setzt ein Hostingscript auf und willst es vermutlich auch noch anderen Usern zur Verfügung stellen.


                  Naja, ohne das Script zu kennen, würde ich mal behaupten, dass das Shell-Script nun eine Passwort-eingabe erfordert. Und deswegen diese (Fehler)Meldung auswirft. Ein Fehler ist es ja net wirklich.

                  Kommentar


                  • #10
                    Wie solch ich die übergabe prüfen ??

                    <?php

                    $USERNAME="666";
                    $PASSWORT="666";
                    $VHOST="666";
                    $ADMAIL="666@dfg.de";
                    shell_exec("sudo '/home/joomlahosting/www/joomla/adduser.sh $USERNAME'";

                    echo $USERNAME;

                    ?>

                    Funktioniert !

                    aber auch !

                    übergabe in eine andere datei !

                    test.php

                    <form action="test2.php" method="post">
                    Username: <input type="text" name="user"><br>
                    Passwort: <input type="text" name="pwd"><br>
                    Vhost: <input type="text" name="vhost"><br>
                    E-Mail: <input type="text" name="email"><br>
                    <input type=submit>
                    </form>

                    test2.php
                    <?
                    echo $user;
                    echo $pwd;

                    ?>

                    funktioniert

                    das shell script von konsole aus als root funktioniert auch ohne variablenübergabe kann ich das shell skript über php ausführen mit

                    <?
                    shell_exec("sudo '/home/joomlahosting/www/joomla/adduser.sh'");
                    ?>

                    nur wenn ich was mitgeben möchte an mein script

                    <?
                    shell_exec("sudo '/home/joomlahosting/www/joomla/adduser.sh $USERNAME'");
                    ?>

                    kommt dann der fehler vom sudo in der apache error.log !


                    wäre super wenn ihr mir da weiterhelfen könntet !

                    mfg.
                    erti

                    Kommentar


                    • #11
                      mach mal bitte einen screenshot von der konsole, wenn du es über selbige aufrufst.

                      Kommentar


                      • #12
                        Hi,

                        du ignorierst ja immer noch die fragen. Bist du denn des
                        wahnsinns einfach code aus dem web auszuführen und dann
                        auch noch, wenn es denn klappt, mit root-rechten???
                        Ist dir klar was du da für ein loch aufreisst?

                        greets
                        Zuletzt geändert von closure; 28.04.2007, 09:19.
                        (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                        Kommentar


                        • #13
                          Original geschrieben von closure
                          Bist du denn des
                          wahnsinns einfach code aus dem web auszuführen und dann
                          auch noch, wenn es denn klappt, mit root-rechten???
                          OffTopic:
                          hey, keep cool, das ist ein php forum.
                          scnr

                          Kommentar


                          • #14
                            Hallo !

                            besten dank aber ich werde das anders lösen !

                            da man anscheinend keine variablen von sudo an ein shell Skript übergeben kann !

                            hab schon alles versucht !

                            Ich schreibe das script neu in PHP, ist auch vom sicherheitsaspekt her besser !

                            mfg.
                            Erti

                            Kommentar

                            Lädt...
                            X