#!/usr/bin/perl # # Coded by Ivan ico Rako Fri, 23 Aug 2013 10:38:53 +0200 # # Uputa: # 1. popuniti konfiguracijske parametre $ldapserver, $ldaprealm i $ldapadminpassword # 2. pokrenuti skriptu kao root na klijentskom racunalu: # ./ldap2passwd.pl >> /etc/passwd # ovdje upisati FQDN ili IP adresu LDAP posluzitelja $ldapserver = "HOSTNAME.DOMAINNAME"; # ovdje upisati LDAP realm (bez .hr na kraju) $ldaprealm = "DOMAIN"; # ovdje upisati lozinku admin korisnika (nalazi se u /etc/aosi/ldap_pwd) $ldapadminpassword = "PASSWORD"; # ovdje mozete postaviti da pocetni uid, svi ostali ce biti za 1 vise $uidnumber = 10000; # ovdje mozete postaviti da pocetni gid, svi ostali ce biti za 1 vise $gidnumber = 10000; use Net::LDAP; $ldap = Net::LDAP->new($ldapserver); $ldap->bind("cn=admin,dc=".$ldaprealm.",dc=hr", password=>$ldapadminpassword); $mesg = $ldap->search(filter=>"(&(objectclass=person)(!(cn=hreduadmin)))", base=>"dc=".$ldaprealm.",dc=hr"); @entries = $mesg->entries; foreach $entry (@entries) { $uid = $entry->get_value(uid); $username = "$uid"."\@".$ldaprealm.".hr"; $uidnumber = $uidnumber + 1; $gidnumber = $gidnumber + 1; $gecos = $entry->get_value(cn); $homedir = "/home/$username"; $shell = "/bin/bash"; print "$username:x:$uidnumber:$gidnumber:$gecos:$homedir:$shell\n"; }