Created
July 26, 2017 04:12
-
-
Save bikram990/864709e6b41e7459195bcbc5af316cb2 to your computer and use it in GitHub Desktop.
Create a daemon user in macOS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
if (( $(id -u) )) ; then | |
echo "This script needs to run as root" | |
exit 1 | |
fi | |
if [[ -z "$1" ]] ; then | |
echo "Usage: $(basename $0) [username] [realname (optional)]" | |
exit 1 | |
fi | |
username=$1 | |
realname="${2:-$username}" | |
echo "Adding daemon user $username with real name \"$realname\"" | |
for (( uid = 500;; --uid )) ; do | |
if ! id -u $uid &>/dev/null; then | |
if ! dscl /Local/Default -ls Groups gid | grep -q [^0-9]$uid\$ ; then | |
dscl /Local/Default -create Groups/_$username | |
dscl /Local/Default -create Groups/_$username Password \* | |
dscl /Local/Default -create Groups/_$username PrimaryGroupID $uid | |
dscl /Local/Default -create Groups/_$username RealName "$realname" | |
dscl /Local/Default -create Groups/_$username RecordName _$username $username | |
dscl /Local/Default -create Users/_$username | |
dscl /Local/Default -create Users/_$username NFSHomeDirectory /Users/_$username | |
dscl /Local/Default -create Users/_$username Password \* | |
dscl /Local/Default -create Users/_$username PrimaryGroupID $uid | |
dscl /Local/Default -create Users/_$username RealName "$realname" | |
dscl /Local/Default -create Users/_$username RecordName _$username $username | |
dscl /Local/Default -create Users/_$username UniqueID $uid | |
dscl /Local/Default -create Users/_$username UserShell /bin/bash | |
dscl /Local/Default -delete /Users/_$username AuthenticationAuthority | |
dscl /Local/Default -delete /Users/_$username PasswordPolicyOptions | |
break | |
fi | |
fi | |
done | |
echo -e "Created system user $username (uid/gid $uid):\n" | |
dscl /Local/Default -read Users/_$username | |
echo -e "\nYou can undo the creation of this user by issuing the following commands:\n" | |
echo "sudo dscl /Local/Default -delete Users/_$username" | |
echo "sudo dscl /Local/Default -delete Groups/_$username" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment