-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add script for creating service users on macos
- Loading branch information
1 parent
07e036d
commit c5c8e65
Showing
1 changed file
with
49 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
#!/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 /var/empty | ||
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 /usr/bin/false | ||
|
||
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" |