Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. if (( $(id -u) )) ; then
  4. echo "This script needs to run as root"
  5. exit 1
  6. fi
  7.  
  8. if [[ -z "$1" ]] ; then
  9. echo "Usage: $(basename $0) [username] [realname (optional)]"
  10. exit 1
  11. fi
  12.  
  13. username=$1
  14. realname="${2:-$username}"
  15.  
  16. echo "Adding daemon user $username with real name \"$realname\""
  17.  
  18. for (( uid = 500;; --uid )) ; do
  19. if ! id -u $uid &>/dev/null; then
  20. if ! dscl /Local/Default -ls Groups gid | grep -q [^0-9]$uid\$ ; then
  21. dscl /Local/Default -create Groups/_$username
  22. dscl /Local/Default -create Groups/_$username Password \*
  23. dscl /Local/Default -create Groups/_$username PrimaryGroupID $uid
  24. dscl /Local/Default -create Groups/_$username RealName "$realname"
  25. dscl /Local/Default -create Groups/_$username RecordName _$username $username
  26.  
  27. dscl /Local/Default -create Users/_$username
  28. dscl /Local/Default -create Users/_$username NFSHomeDirectory /Users/_$username
  29. dscl /Local/Default -create Users/_$username Password \*
  30. dscl /Local/Default -create Users/_$username PrimaryGroupID $uid
  31. dscl /Local/Default -create Users/_$username RealName "$realname"
  32. dscl /Local/Default -create Users/_$username RecordName _$username $username
  33. dscl /Local/Default -create Users/_$username UniqueID $uid
  34. dscl /Local/Default -create Users/_$username UserShell /bin/bash
  35.  
  36. dscl /Local/Default -delete /Users/_$username AuthenticationAuthority
  37. dscl /Local/Default -delete /Users/_$username PasswordPolicyOptions
  38. break
  39. fi
  40. fi
  41. done
  42.  
  43. echo -e "Created system user $username (uid/gid $uid):\n"
  44.  
  45. dscl /Local/Default -read Users/_$username
  46.  
  47. echo -e "\nYou can undo the creation of this user by issuing the following commands:\n"
  48. echo "sudo dscl /Local/Default -delete Users/_$username"
  49. echo "sudo dscl /Local/Default -delete Groups/_$username"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement