import-users (modified 16.09.2015)
#!/usr/bin/perl
use strict;
use warnings;
use EBox;
use EBox::Samba;
use EBox::Samba::User;
use EBox::Samba::Group;
EBox::init();
my $usersMod = EBox::Global->modInstance('samba');
open(my $users, '<', 'users.csv') or die "Error opening 'users.csv' file: $!";
while (my $line = <$users>) {
chomp ($line);
if (substr($line, 0, 1) ne '#') {
my ($ou, $group, $username, $firstname, $lastname, $password, $description) = split(',', $line);
my $parent = $usersMod->objectFromDN("ou=$ou," . $usersMod->ldap->dn());
my %user;
$user{parent} = $parent;
$user{group} = $group;
$user{samAccountName} = $username;
$user{givenName} = $firstname;
$user{sn} = $lastname;
$user{password} = $password;
$user{description} = $description; #optional
my $nuser = EBox::Samba::User->create(%user);
if ($nuser->exists()) {
print "$username added to ou:$ou\n";
if ($group ne '-') {
$nuser->addGroup(new EBox::Samba::Group(samAccountName => $user{group}));
if ($nuser->exists()) {
print "$username added to ou:$ou/group:$group\n";
}
}
}
}
}
close ($users);
1;
users.csv (modified 16.09.2015)
#ou(existing),group(existing),username,firstname,lastname,password,description(optional)
ou,group,username1,firstname1,lastname1,password1,description1
ou,-,username2,firstname2,lastname2,password2,description2
New!! if group='-' user not added to any group!