LDAP add User script

Discussion in 'Programming/Scripts' started by CMPJeff, Nov 3, 2009.

  1. CMPJeff

    CMPJeff New Member

    Hi,

    I've been trying to creat a user with the following script :

    #!/bin/bash

    #This Script adds a LDAP USER With a Zarafa Account

    rm /tmp/ldapadduser.ldiff

    PATH="/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/java/jre/bin"

    # Variables
    USERNAME=$1
    EMAILADRESS=$2
    FNAME=$3
    LNAME=$4
    ALIAS=$5
    ADMIN=$6

    #
    echo dn: uid=$USERNAME,ou=Users,dc=company,dc=nl >> /tmp/ldapadduser.ldiff
    echo objectClass: posixAccount >> /tmp/ldapadduser.ldiff
    echo objectClass: top >> /tmp/ldapadduser.ldiff
    echo objectClass: inetOrgPerson >> /tmp/ldapadduser.ldiff
    echo objectClass: zarafa-user >> /tmp/ldapadduser.ldiff
    echo objectClass: qmailUser >> /tmp/ldapadduser.ldiff
    echo gidNumber: 65534 >> /tmp/ldapadduser.ldiff
    echo loginShell: /none >> /tmp/ldapadduser.ldiff
    echo givenName: $FNAME >> /tmp/ldapadduser.ldiff
    echo sn: $LNAME >> /tmp/ldapadduser.ldiff
    echo displayName: $FNAME $LNAME >> /tmp/ldapadduser.ldiff
    echo uid: $USERNAME >> /tmp/ldapadduser.ldiff
    echo homeDirectory: /none >> /tmp/ldapadduser.ldiff
    echo mail: $EMAILADRESS >> /tmp/ldapadduser.ldiff
    echo zarafaAccount: 1 >> /tmp/ldapadduser.ldiff
    echo zarafaQuotaOverride: 0 >> /tmp/ldapadduser.ldiff
    echo zarafaSharedStoreOnly: 0 >> /tmp/ldapadduser.ldiff
    echo zarafaAdmin: 0 >> /tmp/ldapadduser.ldiff
    echo zarafaQuotaHard: 1000 >> /tmp/ldapadduser.ldiff
    echo zarafaQuotaSoft: 900 >> /tmp/ldapadduser.ldiff
    echo zarafaQuotaWarn: 800 >> /tmp/ldapadduser.ldiff
    echo cn: $LNAME $LNAME >> /tmp/ldapadduser.ldiff
    echo uidNumber: 30266 >> /tmp/ldapadduser.ldiff

    And after this script i perform a ldapadd to add the user...

    BUT ! i have to have a unique uidNumber... Anyone ideas on how to do so ??


    thnx in advance


    Jeffrey
     
  2. adient

    adient New Member

    I did not create this solution, but it is what we have implemented for a similar purpose and it is very easy and effective.

    The basic idea is to have an objectClass of 'uidNext', which has one required attribute of uidNumber. To begin, you create an entry with this objectClass and your desired starting uidNumber.

    You would check the uidNumber attribute of uidNext, delete the entry, then recreate the uidNext entry with uidNumber+1. Use the original uidNumber for your new user.

    Read more about the implementation:
    http://www.rexconsulting.net/ldap-protocol-uidNumber.html
     

Share This Page