What is the correct syntax of adding an OU using Net::LDAP, I tried
the following:
!/usr/bin/perl -w
use 5.10.1; use strict;
use Net::LDAP; use Data::Dumper;
my $ldap = Net::LDAP->new("192.168.183.2") or die "$@"; my $mesg =
$ldap->bind( "cn=admin,dc=lab,dc=net", password => 'xxx' );
$mesg = $ldap->add( "ou=Users,dc=lab,dc=net", attrs => [
'ou' => 'dc=Users',
'objectClass' => [ 'top', 'organizationalUnit' ]
]
);
say $mesg->error; say $mesg->code;
And got the following error:
value of naming attribute 'ou' is not present in entry 64
However using the ldapmodify command line, and using this following ldif, works:
dn: ou=Users,dc=lab,dc=net changetype: add objectclass: top
objectclass: organizationalUnit ou: Users
Thanks,
Lupin
In that case, your add call should say:
'ou' => 'Users',
instead of:
'ou' => 'dc=Users',
Cheers,
Chris
> Thanks Chris, it works.
No problem. You should also check that your bind is succeeding. It returns a $mesg object (like add does) and you should use its ->code() method in the same sort of way to see if it worked.
Cheers,
Chris