createperson 847 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash -e
  2. . .env
  3. . funcs
  4. usage() {
  5. echo "Usage : $(basename $0) -u <uid> -n <First name> -s <Last Name> [-p] [-g group1,group2,...]"
  6. }
  7. trap usage ERR
  8. while getopts 'u:n:s:p?g:?' opt; do
  9. case "$opt" in
  10. u)
  11. uid="$OPTARG"
  12. ;;
  13. n)
  14. gn="$OPTARG"
  15. ;;
  16. s)
  17. sn="$OPTARG"
  18. ;;
  19. p)
  20. posix="true"
  21. ;;
  22. g)
  23. grouplist=$( echo $OPTARG | tr ',' ' ')
  24. ;;
  25. esac
  26. done
  27. pw=$(/usr/sbin/slappasswd -s "salut$uid")
  28. if user_exists $uid; then
  29. echo "User $uid already exists."
  30. exit 1
  31. fi
  32. user="dn: uid=$uid,$PEOPLEDN
  33. objectClass: top
  34. objectClass: inetOrgPerson
  35. sn: $sn
  36. gn: $gn
  37. cn: $gn $sn
  38. mail: $uid@$DOMAIN
  39. userPassword: $pw"
  40. echo "$user" | ldapadd $LDAPOPTS
  41. [ -n "$posix" ] && echo posix && ./person2posix $uid
  42. [ -n "$grouplist" ] && echo groups && ./addtogroups $uid $grouplist