# useradd.macosx
# Copyright (c)2008 Barton IT-Consulting, Alexander Barton
#
-# 2008-07-28, alex@barton-it.de - R2
-# - start directory services when not running (e. g. single user mode)
-# 2008-07-28, alex@barton-it.de - R1
-# - initial version.
-#
NAME=`basename $0`
RELEASE="2"
[ -n "$home_dir" ] || home_dir="/Users/$user_name"
[ -n "$shell" ] || shell="/bin/bash"
+[ "$UID" -eq 0 ] || Abort "This script must be run as root!"
+
# Check that directory services are running
launchctl list 2>/dev/null | fgrep "com.apple.DirectoryServices" >/dev/null 2>&1
if [ $? -ne 0 ]; then
# No user ID given, generate it
if [ $user_id -lt 0 ]; then
# search next free user ID
- declare -i new_id=501
- id "$new_id" >/dev/null 2>&1
- while [ $? -eq 0 ]; do
- new_id=$new_id+1;
- id "$new_id" >/dev/null 2>&1
- done
- user_id=$new_id
+ user_id=`echo $[$(dscl . -list /Users uid | awk '{print $2}' \
+ | sort -n | tail -n1)+1]`
fi
# Validate user name, user id and group id
dscl . -create /Users/"$user_name" NFSHomeDirectory "$home_dir" || Abort
dscl . -create /Users/"$user_name" UserShell "$shell" || Abort
dscl . -create /Users/"$user_name" RealName "$real_name" || Abort
-dscl . -passwd /Users/"$user_name" "maccc" || Abort
+#dscl . -passwd /Users/"$user_name" "maccc" || Abort
if [ "$become_admin" -ne 0 ]; then
[ "$verbose" -ne 0 ] && echo "Adding user to 'admin' group ..."
dscl . -append /Groups/admin GroupMembership "$user_name" || Abort
echo "User '$user_name' ($user_id) has been created."
exit 0
-# -eof-
\ No newline at end of file
+# -eof-