shellscript per PHP ausführen

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von knumskull, 05.01.2009.

  1. #1 knumskull, 05.01.2009
    Zuletzt bearbeitet: 05.01.2009
    knumskull

    knumskull Foren As

    Dabei seit:
    22.09.2006
    Beiträge:
    87
    Zustimmungen:
    0
    Ort:
    Braunschweig
    Hallo,

    ich möchte ein Shellscript, welches über PHP aufgerufen wird, ausführen. Mein erster Ansatz war
    PHP:
    $cmd_output exec('/bin/bash shellscript.sh ' $params ' 2>&1');

    Das script selber
    Code:
    #!/bin/bash
    # echo "Welcome to the create-user-script"
    GROUP=$1
    GID=$2
    GROUP_ROOT=$3
    
    mkdir -p ${GROUP_ROOT}
    echo "`date` Group: ${GROUP}, GID: ${GID}, pwd: ${GROUP_ROOT}, user: ${USER}, pwd: $PWD" >> /tmp/example.txt
    
    exit 0
    Die führt aber nur dazu, das ich eine Meldung bekomme, das ich keinen Zugriff habe, diese Funktion auszuführen.
    Ergibt ja auch sinn, da ich als Benutzer apache in einem Verzeichnis eines anderen Benutzers ein Verzeichnis anlegen möchte.

    Ich habe ebenso versucht das ganze mit SUDO zu lösen, allerdings ohne Erfolg. Bei Sudo bekomme ich folgende Ausgabe:

    output: sudo: sorry, you must have a tty to run sudo

    Die Befehlszeile sieht folgendermaßen aus.
    PHP:
    $cmd_output exec('sudo /bin/bash shellscript.sh ' $params ' 2>&1');
    ich bin für jeden Tipp dankbar.

    *EDIT*
    anstelle von exec() habe ich auch schon shell_exec() probiert.Klappt ebenso wenig.
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Einen Ansatz habe ich gefunden.

    ich habe die Zeile Default requiretty
    in der Datei sudoers auskommentiert. Dadurch kommt die Fehlermeldung nicht mehr.

    Allerdings kommt jetzt eine Passwortabfrage, obwohl ich in der sudoers folgenden Eintrag stehen habe

    Code:
    apache  ALL= NOPASSWD: /bin/mkdir
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Klappt es, wenn Du auch im mkdir mit vollem Pfad angibst (/bin/mkdir)?
     
  4. #3 knumskull, 05.01.2009
    knumskull

    knumskull Foren As

    Dabei seit:
    22.09.2006
    Beiträge:
    87
    Zustimmungen:
    0
    Ort:
    Braunschweig
    gelöst

    So, ich habe es jetzt geschafft. Es war ein Denkfehler meinerseits.

    das Script wird als user 'apache' ausgeführt, allerdings das Verzeichnis wird in einem Verzeichnis von Benutzer 'ftp' angelegt. Das kann hinten und vorne nicht funktionieren.

    folgender Eintrag in der sudoers und kleine Abänderung im Script führt zum Erfolg.

    /etc/sudoers
    Code:
    apache  ALL= (ftp) NOPASSWD: /bin/mkdir
    Script:
    Code:
    sudo -u ftp /bin/mkdir -p ${GROUP_ROOT}
    @rikola Das kommt noch hinzu. Also so wie man es im suoders-file angibt, sollte man es auch aufrufen

    so long
     
  5. #4 saeckereier, 05.01.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Wie sieht denn der Sudo Aufruf im Shellskript aus? Apache ist auch der korrekte User?
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

shellscript per PHP ausführen

Die Seite wird geladen...

shellscript per PHP ausführen - Ähnliche Themen

  1. ShellScript im Finder ausführen?

    ShellScript im Finder ausführen?: Servus Hab ein kleines Problem mit meinen Script, das kann ich nehmlich nur im terminal ausführen wenn ich einen punkt davor mache. Is aber...
  2. Shellscript für rotierende Datensicherung

    Shellscript für rotierende Datensicherung: Hallo, ich beschäftige mich erst seit ein paar Wochen mit der Shell und habe mich entschlossen meine ersten Scripterfahrungen in diesem kleinen...
  3. Shellscript unerwartetes Dateiende

    Shellscript unerwartetes Dateiende: Hallo zusammen, folgendes Script führe ich in einer .bat via cygwin und curl aus. Beim Ausführen erhalte ich die einen Syntaxfehler:...
  4. Einfaches Shellscript - dateinamen ändern

    Einfaches Shellscript - dateinamen ändern: Hey, kann mir jemand vielleicht bei diesem miniscript helfen? ich habe dateien die folgendermaßen aussehen MM-DD-YY-dateiname und...
  5. Variable aus ShellScript in Latexvorlage einfügen

    Variable aus ShellScript in Latexvorlage einfügen: Hallo, wie kann ich Variablen aus einem Shellscript an bestimmte Stellen in eine Vorlage einfügen. Sollte ich dafür spezielle Platzhalter in...