hörbiger: copy() von übergeordnetem Ordner, Apache

Hi,

nach dem ich es geschafft habe, PHP in der Shell auszuführen, widme ich mich nun dem Kopieren von Daten, die oberhalb des Document-Roots liegen.

Dazu habe ich ein php-file, dass in diesen besagten Ordner geht, die Files darin ausliest und dann kopiert in einen Ordner, der im Document-Root liegt.

Die gleiche php-Datei im Browser kopiert nicht! Sie listet auf (opendir) aber dann kommt nix mehr.

Führe ich die php-Datei in der Shell aus, wird kopiert. Nun. Der Unterschied liegt bei den Usern, die die Datei ausführen. Einmal "apache" und dann ein "username".

Dem username gehören die zu kopierende Quelldateien, der Zielort und die PHP-Datei. Dieser User ist auch eingeloggt, wenn über die Shell aufgerufen wird. Beider User nutzen die gleiche  php.ini - ABER:

Nur der apache nutzt noch httpd.conf(.include). In dieser Datei steht nun folgendes:

<Directory /var/www/vhosts/path/to/dir>
 Options -Includes -ExecCGI
 <IfModule sapi_apache2.c>
  php_admin_flag engine off
 </IfModule>
 <IfModule mod_php5.c>
  php_admin_flag engine off
 </IfModule>
</Directory>

Muss ich hier was umstellen? Wenn ja, was?

Aber! Ich bekomme im Browser über "apache" dennoch den Inhalt des Ordners, nur kopieren kann ich es nicht.

Die Pfadangaben sind absolut vom Server-Root.

Hilfe!
H.

  1. Hi, versuch es doch mal mit sudo ;)

    shell_exec('sudo -u root -S command_goes_here < /home/$User/dir/dir/dir/passfile');

    Gruß
    Dennis

    1. Habe ich,

      nada

      shell_exec('sudo -u root -S command_goes_here < /home/$User/dir/dir/dir/passfile');

      ein

      sudo -u username -S cp '/var/www/vhosts/path/to/files/file.ext' '/var/www/vhosts/path/to/files/ftp/' < /var/www/vhosts/path/pwd.txt

      Ergab, dass diese Zeile über Shell funktioniert - aber exec() oder shell_exec() nicht funktioniert.

      Ich habe in der etc/sudoers

      username = (ALL) ALL

      gegeben.