fagersz has asked for the wisdom of the Perl Monks concerning the following question:

Hi there, I wanted some help for this problem, simply wanted to pass any old password the user should happen to create in the Net::ftp login ("username", "userid") I tried the ENV construct out of desperation, I tried uri_escape. (Does it escape all possible entries?) What to do, any guidance appreciated Regards My test password was a doozy "Peleton@1" I tried: 1) Setting it as a litteral in the program, that works ie logs in but doesn't solve my problem
do_ftp() { PASSW="Peleton\@1";export PASSW /usr/bin/perl -e ' use warnings; use Net::FTP; use URI::Escape; my $host = $ARGV[0]; my $userid = $ARGV[1]; #my $passw = $ENV{'PASSW'}; #my $passw = $ARGV[2]; my $passw = "Peleton@1"; print "Host:$host\n"; print "user:$userid\n"; print "passw:$passw\n"; my $string = $passw; my $encode = uri_escape($string); print "encode:$encode\n"; my $ftp = Net::FTP->new($host, Timeout=>10); if (! $ftp) { print "connection failed!\n"; exit 1; } else { print "connected!\n"; } if (! $ftp->login($userid, $encode)) { print "login failed!\n"; exit 2; } else { print "login succeeded!\n"; } $ftp->close(); exit 0;' "ssssshostname.com" "dcatbond" "Peleton\@1" } # MAIN do_ftp

Replies are listed 'Best First'.
Re: net::ftp - passwords
by uday_sagar (Scribe) on May 15, 2012 at 06:32 UTC

    fagersz,

    This is not the answer to your post. But i suggest you to go through Writeup Formatting Tips to make your query better understandable

    Thanks

      Hi there, I wanted some help for this problem, simply wanted to pass any old password the user should happen to create in the Net::ftp login ("username", "userid") I tried the ENV construct out of desperation, I tried uri_escape. (Does it escape all possible entries?) What to do, any guidance appreciated Regards My test password was a doozy "Peleton@1" I tried: 1) Setting it as a litteral in the program, that works ie logs in but doesn't solve my problem

      do_ftp() { PASSW="Peleton\@1";export PASSW /usr/bin/perl -e ' use warnings; use Net::FTP; use URI::Escape; my $host = $ARGV[0]; my $userid = $ARGV[1]; #my $passw = $ENV{'PASSW'}; #my $passw = $ARGV[2]; my $passw = "Peleton@1"; print "Host:$host\n"; print "user:$userid\n"; print "passw:$passw\n"; my $string = $passw; my $encode = uri_escape($string); print "encode:$encode\n"; my $ftp = Net::FTP->new($host, Timeout=>10); if (! $ftp) { print "connection failed!\n"; exit 1; } else { print "connected!\n"; } if (! $ftp->login($userid, $encode)) { print "login failed!\n"; exit 2; } else { print "login succeeded!\n"; } $ftp->close(); exit 0;' "ssssshostname.com" "dcatbond" "Peleton\@1" } # MAIN do_ftp

        fagersz:

        I'd suggest changing line 33 from this:

        if (! $ftp->login($userid, $encode)) {

        to this:

        if (! $ftp->login($userid, $passw)) {

        ...roboticus

        When your only tool is a hammer, all problems look like your thumb.