Hi, guys:
i have a perl script that supposed to add users to ldap . when i run the
script it get:
Can't call method "get_value" on an undefined value at ./add_user.pl
Any help will be appreciated?
The following message is my perl script message and my perl version is
5.8.8 on CentOS 5.4 x86_64.
t...@xxx ~: cat add_user.pl
--------------------------------------------------------------------------------------------------------------
#!/usr/bin/perl
use strict;
use Net::LDAP;
die "Usage is adduser.pl [username] [realname]\n" if length(@ARGV) != 1;
my $username = $ARGV[0];
my $realname = $ARGV[1];
my $ldap = Net::LDAP->new('localhost');
my $mesg = $ldap->bind;
my $mesg = $ldap->search(
base => "ou=People,dc=example,dc=com",
filter => "(uid=$username)",
);
$mesg->code && die $mesg->error;
my $searchResults = $mesg->count;
die "Error! Username already exists!" unless $searchResults == 0;
#print $searchResults;
$mesg = $ldap->search(
base => "ou=People,dc=example,dc=com",
attrs => ['uidNumber'],
);
my @entries = $mesg->sorted('uidNumber');
my $entry = pop @entries;
my $newuid = $entry->get_value( 'uidNumber');
$newuid++;
my $result = $ldap->add ("uid=$username,ou=People,dc=example,dc=com",
attr => [ 'cn' => $realname,
'uid' => $username,
'uidNumber' => $newuid,
'mail' => '[email protected]',
'homeDirectory' => '/home/$username',
'objectclass' => ['person',
'inetOrgPerson', 'posixAccount']
]
);
$mesg = $ldap->unbind;