person2posix 969 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/bin/bash
  2. . .env
  3. uid=${1}
  4. user="dn: uid=%UID%,$PEOPLEDN
  5. changeType: modify
  6. add: objectClass
  7. objectClass: posixAccount
  8. -
  9. add: uidNumber
  10. uidNumber: %NUMBER%
  11. -
  12. add: gidNumber
  13. gidNumber: %NUMBER%
  14. -
  15. add: homeDirectory
  16. homeDirectory: /home/%UID%
  17. -
  18. add: loginShell
  19. loginShell: /bin/bash
  20. -
  21. add: objectClass
  22. objectClass: shadowAccount
  23. -
  24. add: objectClass
  25. objectClass: ldapPublicKey"
  26. group="dn: cn=%UID%,$GROUPSDN
  27. objectClass: top
  28. objectClass: posixGroup
  29. cn: %UID%
  30. gidNumber: %NUMBER%
  31. memberUid: %UID%"
  32. # get the list of currently used uid numbers and add 1 to get the next one
  33. uidnumber=$(( $(slapcat | grep 'gidNumber: 2' | cut -d' ' -f2 | sort -u | tail -n 1) +1))
  34. # add the necessary attribbute for a posixAccount
  35. echo "$user" | sed \
  36. -e "s/%NUMBER%/$uidnumber/" \
  37. -e "s/%UID%/$uid/" #| $MODIFY_CMD
  38. # create a posic group with the same name and uid as the user
  39. # and add them to it
  40. echo "$group" | sed \
  41. -e "s/%NUMBER%/$uidnumber/" \
  42. -e "s/%UID%/$uid/" #| $ADD_CMD