LINUX.ORG.RU

perl


0

0

Как в перле можно сделать секюрный запрос пароля? Что-бы не открытым текстом в скрипте писать. а в отдельном адресном пространстве, подобно
 тому как это происходит при использовании ssh. Какой модуль для этого нужно заюзать?
anonymous

use Term::ReadKey;
print "Enter your password:";
ReadMode 'noecho';
$password = Readline 0;
chomp $password;
ReadMode 'normal';

gnomino
()

Неужели тебя забанили в 'perldoc -q password'?

Onanim
()

В отдельном адресном пространстве? О_о

Имеется в виду что mmap ится страница, которая mlock ается с целью непопадания в своп? Или что?

OxiD ★★★★
()
Ответ на: комментарий от OxiD

Ок, сенк.
А подскажите как на перле рекурсивно прочитать из файликов по маске имени значение строчки с определенным именем.
Т.е., есть произвольная структура каталогов, в них есть файлики с именами, к примеру 
/a/user-1
/a/host-1
/a/user-2
/a/a1/user-3
/b/user-4 
...etc
нужно читать только файлики с маской user и в них найдя строчку вида
A_LOGIN=vasya
прочитать имя "vasya"

anonymous
()
Ответ на: комментарий от anonymous

perldoc -f readdir
perldoc -q 'regular expression'

; asgard

anonymous
()
Ответ на: комментарий от roller

вот что получилось...
подскажите почему когда я пытаюсь выполнить "греп" в перле, т.е. по патернам искать файлы то у меня находится только первый и бесконечный цикл на этом обламывается?
use strict;
sub recurse($) {
  my($path) = @_;
  my $pattern  =$ARGV[1];
  $path .= '/' if($path !~ /\/$/);
   print $path,"\n";

   for my $eachFile (glob($path.'*')) {
    if( -d $eachFile) {
      recurse($eachFile);
    } else {
        while (<>)
        {
        print "\t",$eachFile,"\n" if /$pattern/;
        }
#      print "\t",$eachFile,"\n";
    }
  }
}
recurse($ARGV[0]);

А вот тут  вот что...
use strict;
use Term::ReadKey;
use Net::SSH::Perl;
use Net::SSH::Perl::Cipher;
my $port = "22";
my $host ="127.0.0.1";
my $user = "user";
print "Enter your password:";
ReadMode('noecho');
chomp(my $pass = <STDIN>);
ReadMode(0);
my $cmd = "uname -a";
my $ssh = Net::SSH::Perl->new($host,port=>($port),debug => 1);
$ssh-&gtlogin($user, $pass);
#my($out, $err) = $ssh->cmd($cmd);
chomp ( my $cmd = 'uname -a');
my($out, $err) = $ssh->cmd($cmd);
print $out;
$ssh->cmd("exit");

Connection established.
Undefined subroutine &main::gtlogin called at ./sh.pl line 18, <STDIN> line 1.

Секюрно ли передавать пароль в STDIN?

Принимаются любые предложения того как сделать суид и при этом тоже секюрно передать пароль.
Если просто, то во так
$ssh->su("root", "pass"); 
А как секюрно, что-бы нигде не записывать его и в функции GetText в GetWindow его нельзя было получить?

anonymous
()
Ответ на: комментарий от anonymous

> подскажите почему когда я пытаюсь выполнить "греп" в перле, т.е. по патернам искать файлы то у меня находится только первый и бесконечный цикл на этом обламывается?

The null filehandle <> is special: it can be used to emulate the behavior of sed and awk. ***Input from <> comes either from standard input, or from each file listed on the command line***. Here's how it works: the first time <> is evaluated, the @ARGV array is checked, and if it is empty, $ARGV[0] is set to "-", which when opened gives you standard input. The @ARGV array is then processed as a list of filenames. The loop

while (<>) {
... # code for each line
}

is equivalent to the following Perl-like pseudo code:

unshift(@ARGV, '-') unless @ARGV;
while ($ARGV = shift) {
open(ARGV, $ARGV);
while (<ARGV>) {
... # code for each line
}
}

anonymous
()
Ответ на: комментарий от anonymous

use strict; use Term::ReadKey; use Net::SSH::Perl; use Net::SSH::Perl::Cipher; my $port = "22"; my $host ="127.0.0.1"; my $user = "user"; print "Enter your password:"; ReadMode('noecho'); chomp(my $pass = <STDIN>); ReadMode(0); my $cmd = "uname -a"; my $ssh = Net::SSH::Perl->new($host,port=>($port),match => '/yes/',debug => 1); $ssh->login($user, $pass); #my($out, $err) = $ssh->cmd($cmd); chomp ( my $cmd = 'uname -a'); my($out, $err) = $ssh->cmd($cmd); print $out; $ssh->cmd("exit");

Sent key-exchange init (KEXINIT), wait response. Algorithms, c->s: 3des-cbc hmac-sha1 none Algorithms, s->c: 3des-cbc hmac-sha1 none /libexec/ld-elf.so.1: /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/Math/BigInt/GMP/GMP.so: Undefined symbol "__gmpz_init_set_str"

похоже серт не принимает, как принять? my $ssh = Net::SSH::Perl->new($host,port=>($port),match => '/yes/',debug => 1); не прокатывает(

anonymous
()
Ответ на: комментарий от anonymous

use strict;
use Term::ReadKey;
use Net::SSH::Perl;
use Net::SSH::Perl::Cipher;
my $port = "22";
my $host ="127.0.0.1";
my $user = "user";
print "Enter your password:";
ReadMode('noecho');
chomp(my $pass = <STDIN>);
ReadMode(0);
my $cmd = "uname -a";
my $ssh = Net::SSH::Perl->new($host,port=>($port),match => '/yes/',debug => 1);
$ssh->login($user, $pass);
#my($out, $err) = $ssh->cmd($cmd);
chomp ( my $cmd = 'uname -a');
my($out, $err) = $ssh->cmd($cmd);
print $out;
$ssh->cmd("exit");

Sent key-exchange init (KEXINIT), wait response.
Algorithms, c->s: 3des-cbc hmac-sha1 none
Algorithms, s->c: 3des-cbc hmac-sha1 none
/libexec/ld-elf.so.1: /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/Math/BigInt/GMP/GMP.so: Undefined symbol "__gmpz_init_set_str"

похоже серт не принимает, как принять?
my $ssh = Net::SSH::Perl->new($host,port=>($port),match => '/yes/',debug => 1);
не прокатывает(

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.