OVH Cloud OVH Cloud

je ne vois pas ou ca cloche

2 réponses
Avatar
Fabrice L.
Bonjour a tous et toutes !

quand je lance ce script en ligne de commande il fonctionne parfaitement.

## script.pl
#!/usr/bin/perl

use CGI::Carp qw(fatalsToBrowser);
use Net::SSH::Perl;
use Net::SSH::Perl::Cipher;

my $ssh = Net::SSH::Perl->new(MON.IP.EST.LA',
port => 'ssh',
cipher => Net::SSH::Perl::Cipher::name('6'),
debug => 0);

$ssh->login('login', 'pass');

$cmd = "cd /home/sv01_04; ./lanceur.pl";

my($out, $err, $exit) = $ssh->cmd($cmd);
print $out if $out;
print $err if $err;


Le meme lancé depuis un navigateur ne fonctionne pas ...

## script.pl
#!/usr/bin/perl

print "Content-type: text/html\n\n"; ## <== il n'y a que ca de nouveau

use CGI::Carp qw(fatalsToBrowser);
use Net::SSH::Perl;
use Net::SSH::Perl::Cipher;

my $ssh = Net::SSH::Perl->new(MON.IP.EST.LA',
port => 'ssh',
cipher => Net::SSH::Perl::Cipher::name('6'),
debug => 0);

$ssh->login('login', 'pass');

$cmd = "cd /home/sv01_04; ./lanceur.pl";

my($out, $err, $exit) = $ssh->cmd($cmd);
print $out if $out;
print $err if $err;


... et m'affiche l'erreur suivante : mkdir /.ssh: Permission denied at
/usr/lib/perl5/site_perl/5.6.1/Net/SSH/Perl/Util/Hosts.pm line 50


Comment faire alors pour lancer ce script depuis un navigateur

Merci d'avance
Fabrice

2 réponses

Avatar
Alain BARBET
quand je lance ce script en ligne de commande il fonctionne parfaitement.


J'ai l'impression d'avoir deja lu ce genre de phrase :-)
Benh we c'est un classique. Comme tu as eu la flemme de chercher, je te
fais un resume: si ca marche en ligne de commande et pas a travers
apache, c'est que ce n'est pas le meme utilisateur qui lance le script.

... et m'affiche l'erreur suivante : mkdir /.ssh: Permission denied at
/usr/lib/perl5/site_perl/5.6.1/Net/SSH/Perl/Util/Hosts.pm line 50


Donc tu te loggues avec le compte d'apache, ( cat httpd.conf|grep User),
style su - nobody, tu lance le script, et tu vois si ca marche. Et non
ca marche pas, parce que le compte nobody a le repertoire / comme home.

Donc il faut modifier le /etc/passwd pour lui mettre un home correct.
Style /home/nobody. (fait en root chsh nobody) Ensuite un chown nobody
/home/nobody. Ensuite tu devrais pouvoir creer le rep .ssh qui contient
les donnees ssh.

Ah oui il est ou le perl ?

Avatar
Fabrice L.
merci, c parfait et désolé pour le HS !

Fabrice


"Alain BARBET" a écrit dans le message news:
cdbdkv$1anp$
quand je lance ce script en ligne de commande il fonctionne
parfaitement.



J'ai l'impression d'avoir deja lu ce genre de phrase :-)
Benh we c'est un classique. Comme tu as eu la flemme de chercher, je te
fais un resume: si ca marche en ligne de commande et pas a travers
apache, c'est que ce n'est pas le meme utilisateur qui lance le script.

... et m'affiche l'erreur suivante : mkdir /.ssh: Permission denied at
/usr/lib/perl5/site_perl/5.6.1/Net/SSH/Perl/Util/Hosts.pm line 50


Donc tu te loggues avec le compte d'apache, ( cat httpd.conf|grep User),
style su - nobody, tu lance le script, et tu vois si ca marche. Et non
ca marche pas, parce que le compte nobody a le repertoire / comme home.

Donc il faut modifier le /etc/passwd pour lui mettre un home correct.
Style /home/nobody. (fait en root chsh nobody) Ensuite un chown nobody
/home/nobody. Ensuite tu devrais pouvoir creer le rep .ssh qui contient
les donnees ssh.

Ah oui il est ou le perl ?