#!/bin/bash . .env . funcs uid=$1 if user_exists $uid; then true else echo "User $uid does not exist." exit 1 fi if user_is_posix $uid; then echo "User $uid is already a posixAccount" exit 1 fi user="dn: uid=%UID%,$PEOPLEDN changeType: modify add: objectClass objectClass: posixAccount - add: uidNumber uidNumber: %NUMBER% - add: gidNumber gidNumber: %NUMBER% - add: homeDirectory homeDirectory: /home/%UID% - add: loginShell loginShell: /bin/bash - add: objectClass objectClass: shadowAccount - add: objectClass objectClass: ldapPublicKey" group="dn: cn=%UID%,$GROUPSDN objectClass: top objectClass: posixGroup cn: %UID% gidNumber: %NUMBER% memberUid: %UID%" uidnumber=get_posix_number # add the necessary attribbute for a posixAccount echo "$user" | sed \ -e "s/%NUMBER%/$uidnumber/" \ -e "s/%UID%/$uid/" | ldapmodify $LDAPOPTS # create a posix group with the same name and uid as the user # and add them to it echo "$group" | sed \ -e "s/%NUMBER%/$uidnumber/" \ -e "s/%UID%/$uid/" | ldapadd $LDAPOPTS