Problem mit System und Netzwerkeinstellungen

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

  • Problem mit System und Netzwerkeinstellungen

    Hallo,

    wir versuchen grade die Netzwerkeinstellungen mittels system() auf einem GenToo OS (2005.1) zu ändern, mittels eines kleinen Skripts. Variablen werden 1a übermittelt, es tut sich leider nix. Weder mit "ifconfig" noch wird irgendetwas in die resolv.conf eingetragen.


    Hat jemand eine zündende Idee? Oder ist irgendetwas an diesem Code falsch?

    PHP-Code:
        $new_ip $_POST["ip"];
        
    $new_dns $_POST["dns"];
        
    $new_gateway $_POST["gateway"];
        
    $use_dhcp $_POST["dhcp"];
        
        
    $dns_entry "nameserver $new_dns";
        
        
        
    /* If DHCP is used, activate it. If not, set static configuration. */
        
    if( $use_dhcp == "yes" ) {
            echo 
    "Using dhcp.";
        }
        else {
            
    /* Set IP */
                
    echo "Setting IP to $new_ip...<br />";
            
    system("Scripts/UpdateSettings.sh ip $new_ip");
        
                
    /* Set DNS */
                
    echo "Setting Primary DNS to $new_dns...<br />";
            
    system("Scripts/UpdateSettings.sh dns $new_dns");
        
                
    /* Set Gateway */
                
    echo "Setting gateway to $new_gateway...<br />";
            
    system("Scripts/UpdateSettings.sh gateway $new_gateway");
        } 
    The Human Mirror - Mein Blog!
    www.sonicsense.de - The future of music!

  • #2
    zeig mal das sh script
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Jop,

      wollte ich gerade posten. Und noch ein paar Daten:

      apache 2.0.54-r31
      mod_php 4.4.0-r3

      Das obere Script hat auch root rechte etc.

      Code:
      #!/bin/bash
      
      
      #
      # Return the ip of eth0
      #
      if [ "$1" == "ip" ]; then
      	/sbin/ifconfig eth0 $2
      fi
      
      
      #
      # Return the default gateway
      #
      if [ "$1" == "gateway" ]; then
      	route del default
      	route add default gw $2
      fi
      
      
      #
      # Return the primary DNS
      #
      if [ "$1" == "dns" ]; then
      	echo "nameserver $2" > /etc/resolv.conf
      fi
      
      
      exit 0
      The Human Mirror - Mein Blog!
      www.sonicsense.de - The future of music!

      Kommentar


      • #4
        Folgendes sh. Skript, zum Auslesen, funktioniert einwandfrei:

        Code:
        #!/bin/bash
        
        
        #
        # Return the ip of eth0
        #
        if [ "$1" == "ip" ]; then
        	IP=`/sbin/ifconfig eth0 | head -n 2 | tail -n 1 | cut -d":" -f 2 | cut -d" " -f1`
        	echo "$IP"
        fi
        
        
        #
        # Return the default gateway
        #
        if [ "$1" == "gateway" ]; then
        	routen=`/sbin/route | grep "^default"`
        	Route=`for I in $routen; do echo $I; done | head -n 2 | tail -n 1`
        	echo "$Route"
        fi
        
        
        #
        # Return the primary DNS
        #
        if [ "$1" == "dns" ]; then
        	dns=`cat /etc/resolv.conf | grep nameserver | head -n 1 | cut -d" " -f2`
        	echo "$dns"
        fi
        
        
        #
        # Return the software version
        #
        if [ "$1" == "version" ]; then
        	version=`cat /home/sonic/.config/Picadreams/SonicSense-Client.ini | grep Version | cut -d"=" -f2`
        	echo "$version"
        fi
        
        
        #
        # Return the customer id
        #
        if [ "$1" == "id" ]; then
        	id=`cat /home/sonic/.config/Picadreams/SonicSense-Client.ini | grep CustomerId | cut -d"=" -f2`
        	echo "$id"
        fi
        
        
        exit 0
        The Human Mirror - Mein Blog!
        www.sonicsense.de - The future of music!

        Kommentar


        • #5
          Hallo,
          Zur Info für die Anderen: Ich bin an der Entwicklung des Skriptes beteiligt.

          Also, was ich schon versucht habe:
          GetInfo.sh von "Hand" in der Konsole als Root ausführen -> funktioniert
          GetInfo.sh im Skript ausführen -> funktioniert
          UpdateSettings.sh von "Hand" in der Kosnole als Root ausführen -> funktioniert
          UpdateSettings.sh im Skript ausführen -> funktioniert bedingt

          Bedingt heißt, wenn ich ein echo mache, wird es im PHP Skript ausgegeben. Aber der Befehl z.B.: ifconfig wird nicht ausgeführt.
          Führe ich das Skript aber von Hand als Root aus, funktioniert es einwandfrei.

          Das Skript hat als owner Root und Group Root und die Rechte 755. Das Setzen des suid Flags hatte auch keinen erfolg.
          Auftragsentwicklung:
          www.nal-development.com

          Kommentar


          • #6
            Startet ihr das PHP-Script in einer Shell oder ruft ihr es über einen Browser auf? Letzteres hieße nämlich, dass es quasi der User startet, unter dem der Webserver läuft und das ist nicht automatisch root, nur weil das Script root gehört.

            Kommentar


            • #7
              Das Skript wird über den Browser gestartet. Genau das dachte ich mir, deshalb habe ich auch das suid Flag zu setzen (chmod +s). Soweit ich mich erinnern kann, bewirkt es, dass ein Skript dann als Eigentümer ausgeführt wird, egal wer es wirklich ausführt.
              Falls das falsch ist, welche Möglichkeit gibt es denn sonst?

              PS. Ich bin "NaL-Development", nur das Projekt gibt es nicht mehr, deshalb habe ich jetzt quasi den "offiziellen" Account angelegt.
              Picadreams
              .software.beratung.schulung.

              www.picadreams.at

              Kommentar


              • #8
                Leider haben wir noch keine Lösung gefunden...

                *Push
                The Human Mirror - Mein Blog!
                www.sonicsense.de - The future of music!

                Kommentar


                • #9
                  Anyone...?
                  *push*
                  Picadreams
                  .software.beratung.schulung.

                  www.picadreams.at

                  Kommentar

                  Lädt...
                  X