|
|
@@ -0,0 +1,47 @@
|
|
|
+#!/bin/bash
|
|
|
+. .env
|
|
|
+uid=${1}
|
|
|
+
|
|
|
+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%"
|
|
|
+
|
|
|
+# get the list of currently used uid numbers and add 1 to get the next one
|
|
|
+uidnumber=$(( $(slapcat | grep 'gidNumber: 2' | cut -d' ' -f2 | sort -u | tail -n 1) +1))
|
|
|
+
|
|
|
+# add the necessary attribbute for a posixAccount
|
|
|
+echo "$user" | sed \
|
|
|
+ -e "s/%NUMBER%/$uidnumber/" \
|
|
|
+ -e "s/%UID%/$uid/" #| $MODIFY_CMD
|
|
|
+
|
|
|
+# create a posic 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/" #| $ADD_CMD
|