[Date Prev][Date Next] [Chronological] [Thread] [Top]

Get Max uidNumber ...



Greetings ...

I search the archives and found that there was a few ideas how to do this, so I thought that I would though out my idea and see you guys bash it ... no pun intended ... I know this would be slow if one was tring to bring in more than a few users, but then I use it just to add a few users at a time ... I also believe this would not be a good idea to have more than one user adding in users, because the uidNumber could go up while we import the next user.

	Take look and tell me what you think ...

Mailed
Lee

#!/bin/bash
#
ldapsecret="-w topsecret"
ldapDN="dc=foobar, dc=com"

function getMaxUid ()
{
n=0
for i in $(ldapsearch -x -LLL $ldapsecret -D "cn=Manager, $ldapDN" "(uidNumber=*)" uidNumber -S uidNumber | grep uidNumber | tail -n1 );
do \
ldaparry[$n]=$i
let n+=1
done


    if [ "${ldaparry[0]}" == "uidNumber:" ]; then
	echo $((${ldaparry[1]}+1))
	return 0
    else
	return -1
    fi
}


function adduser () { echo "dn: uid=tempacc,ou=People,$ldapDN" echo "uid: tempacc" echo "cn: tempacc" echo "sn: surname" echo "objectClass: person" echo "objectClass: organizationalPerson" echo "objectClass: inetOrgPerson" echo "objectClass: account"openldap-software@OpenLDAP.org echo "objectClass: posixAccount" echo "objectClass: top" echo "objectClass: shadowAccount" echo "userPassword:: e2NyeXB0fVNBMDFWamZva2VwUi4=" echo "shadowLastChange: 11159" echo "shadowMax: 99999" echo "shadowWarning: 7" echo "gidNumber: 100" echo "homeDirectory: /home/users/tempacc" uidNumber=`getMaxUid` (($uidNumber > 0)) if [ $? ]; then echo "uidNumber: $uidNumber" return 0 else return -1 fi }

adduser | ldapadd -x $ldapsecret -D "cn=Manager, $ldapDN

exit 0