Page 1 of 1

scp

Posted: 2004-12-29 10:21
by kane
Hi @ all!

Habe schon ohne ende gegoogelt, hier und in diversen anderen foren gesucht aber leider nichts gefunden...


Zu meinem Problem:

Ich möchte über ein PHP Script mittels system() oder exec() eine Datei mittels scp auf einen anderen server kopieren und dann über ssh auf dem externen server aufrufen...

Hier mal das Script

Code: Select all

$cmd = "/usr/bin/scp /srv/www/htdocs/web1/html/shellcmd.sh root@".$arr_server['nip'].":/shell/shellcmd.sh";

$parse_cmd =  escapeshellarg($cmd);

// System()
system($parse_cmd, $return);

// oder exec()
exec($parse_cmd, $out);
Ich bekomme keine Ausgabe, bzw. die Datei wird auch nicht kopiert. PW muss auch nicht eingegeben werden, weil die Keys bereits angelegt sind, daran kann es also nicht liegen.
Habe gelesen, das es etwas mit der Rechtevergabe zu tun haben könnte :)
Der User der das PHP Script ausführt ist web1... Sefe_mode ist auch off...

Habe noch was getestet -> wenn ich zb. rcnamend status über system()/exec() mache bekomme ich eine Ausgabe... bei rcapache2 status aber nicht...

System: Linux 9.0, Apache2, PHP 4.3.3

Hoffe jemand weiß rat, oder ein gutes howto :)

Gruß und Danke Kane

Re: scp

Posted: 2004-12-29 14:11
by kane
Nachtrag:

wenn ich die Befehle in die Console eingebe (als user web1), wird alles korrekt ausgeführt....

Selstsam, keiner eine Idee?

Re: scp

Posted: 2004-12-29 14:49
by Roger Wilco
Kane wrote:wenn ich die Befehle in die Console eingebe (als user web1), wird alles korrekt ausgeführt....
Du hast wahrscheinlich PHP als Apache-Modul laufen. Damit werden alle PHP-Skripte als der Apache-Benutzer (wwwrun? apache?) ausgeführt. Die SSH Keys hast du aber sicherlich im Homeverzeichnis von web1. Du kannst nun entweder den Aufruf mit sudo durchführen, oder deine Konfiguration dahingehend ändern, dass PHP als der Benutzer web1 ausgeführt wird (-> SuExec, SuPHP, mpm_metux, FastCGI ...).

Re: scp

Posted: 2004-12-29 15:03
by kane
Hi!

Würde es reichen, die ssh keys auch auf wwwrun zu ändern (chown / chgrp) oder wie müsste ich das dann machen?