Неинициализированное значение Perl с LDAP в Linux - PullRequest
0 голосов
/ 27 мая 2019

Ниже приведен скрипт на Perl, который в основном извлекает отчеты username и password из ldapserver и сохраняет их в файл, это прекрасно работает в ОС Solaris, хотя при использовании этого на хосте Linux он выдает ошибки..

Код сценария:

#!/usr/bin/perl -w
use Net::LDAP;
use File::Copy;

#my $login = $ARGV[0];
my $ldaphost = "ldapserver.freesocks.com";
my $base     = "o=freesocks.com";
my $pbase    = "ou=people,o=freesocks.com";
my $bindid   = "uid=ldapbind,ou=Groups, o=freesocks.com";
my $bindpwd  = "ldapbind";

my $ldap = Net::LDAP->new($ldaphost) or die "$@";

my $mesg = $ldap->bind( $bindid, password => $bindpwd );
$mesg->code && die "Can't bind to LDAP server $ldaphost";

$passwd = $ldap->search(filter=>"(objectClass=*)", base=>"ou=people,o=freesocks.com");

open (HTPASSWD, ">.htpasswd_tmp") ||  die "can't write .htpasswd file!";

@entries  = $passwd->entries;
foreach $entry (@entries) {

         my $login= $entry->get_value("uid");
         my $pass = $entry->get_value("userPassword");
     #$pass =~ s/{crypt}//g;
         $pass =~ s/\{crypt\}//ig;
        if ($login =~ /^\D/ && $pass =~ /^[^*]/) {
                print HTPASSWD "$login:$pass\n";
        }
}

close HTPASSWD;
move (".htpasswd_tmp", ".htpasswd");
$ldap->unbind;

ОШИБКИ:

Use of uninitialized value $pass in substitution (s///) at ./get_htpasswd2.pl line 27, <DATA> line 522.
Use of uninitialized value $login in pattern match (m//) at ./get_htpasswd2.pl line 28, <DATA> line 522.
Use of uninitialized value $pass in substitution (s///) at ./get_htpasswd2.pl line 27, <DATA> line 522.
Use of uninitialized value $login in pattern match (m//) at ./get_htpasswd2.pl line 28, <DATA> line 522.
Use of uninitialized value $pass in substitution (s///) at ./get_htpasswd2.pl line 27, <DATA> line 522.
Use of uninitialized value $pass in pattern match (m//) at ./get_htpasswd2.pl line 28, <DATA> line 522.

При работе в ОС Solaris он работает. Отлично.

Результат включенОС СОЛНЦА:

favio:v7qRAmjxdPBbQ
sunilrdo:WSXNMu7ImdcAA
fredio:Z2QlGX8bss/sE
zoonga:cgz6F9DMrkaWA

Я никогда не использовал Perl, поэтому стараюсь понять, мне нужна ваша помощь / совет, чтобы получить правильные результаты.

...