Remove in-file history, we use GIT now
[usertools.macosx.git] / useradd.macosx.sh
index 518aef341413a2cedd7ec7ca53567645bc6e8733..0949d520380d154b608ae97db98acef1690d6ad5 100755 (executable)
@@ -3,11 +3,6 @@
 # useradd.macosx
 # Copyright (c)2008 Barton IT-Consulting, Alexander Barton
 #
 # 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"
 
 NAME=`basename $0`
 RELEASE="2"
@@ -111,6 +106,8 @@ done
 [ -n "$home_dir" ] || home_dir="/Users/$user_name"
 [ -n "$shell" ] || shell="/bin/bash"
 
 [ -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
 # Check that directory services are running
 launchctl list 2>/dev/null | fgrep "com.apple.DirectoryServices" >/dev/null 2>&1
 if [ $? -ne 0 ]; then
@@ -126,13 +123,8 @@ fi
 # No user ID given, generate it
 if [ $user_id -lt 0 ]; then
        # search next free user ID
 # 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
 fi
 
 # Validate user name, user id and group id
@@ -168,7 +160,7 @@ dscl . -create /Users/"$user_name" PrimaryGroupID "$group_id" || Abort
 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 . -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
 if [ "$become_admin" -ne 0 ]; then
        [ "$verbose" -ne 0 ] && echo "Adding user to 'admin' group ..."
        dscl . -append /Groups/admin GroupMembership "$user_name" || Abort
@@ -184,4 +176,4 @@ chmod 755 "$home_dir" || Abort
 echo "User '$user_name' ($user_id) has been created."
 exit 0
 
 echo "User '$user_name' ($user_id) has been created."
 exit 0
 
-# -eof-
\ No newline at end of file
+# -eof-