diff options
author | Andrew Lewman <andrew@torproject.org> | 2007-06-12 22:17:24 +0000 |
---|---|---|
committer | Andrew Lewman <andrew@torproject.org> | 2007-06-12 22:17:24 +0000 |
commit | b022b95a13194547a812c2b1fd5e0a66f3cdd09e (patch) | |
tree | 3a6052002fe4ea23a8650e3698a7ea3cbf284eb6 /contrib/osx/addsysuser | |
parent | 3c9cddd70632712bbb792097d98ab2cc456cbcb8 (diff) | |
download | tor-b022b95a13194547a812c2b1fd5e0a66f3cdd09e.tar.gz tor-b022b95a13194547a812c2b1fd5e0a66f3cdd09e.zip |
Backport candidate. Updated to work with all versions of osx we support (10.3-10.5).
svn:r10579
Diffstat (limited to 'contrib/osx/addsysuser')
-rwxr-xr-x | contrib/osx/addsysuser | 75 |
1 files changed, 49 insertions, 26 deletions
diff --git a/contrib/osx/addsysuser b/contrib/osx/addsysuser index c57f46e139..7b167eac00 100755 --- a/contrib/osx/addsysuser +++ b/contrib/osx/addsysuser @@ -5,6 +5,9 @@ # Modified for Tor installer by Nick Mathewson # 2007-06-12 Modified for leopard by Andrew Lewman + +ROOTPROP=/ + if [ "`whoami`" != "root" ]; then echo "You must be root to execute this script." exit @@ -16,30 +19,50 @@ fi username=$1 realname=$2 homedir=$3 -# GID 20 is "staff" which is the default. Change it if you want. -#gid=`niutil -readprop $ROOTPROP /groups/daemon gid` -gid=`dscl . -read /groups/daemon gid` -echo $gid -#if [ "x`niutil -list $ROOTPROP /users|cut -f2 -d' '|grep $username`" != "x" ]; then -if [ "x`dscl . -list /users|cut -f2 -d' '|grep $username`" != "x" ]; then -echo The account $username already exists. -exit 0 +if [ -x /usr/bin/dscl ]; then + # Determine the gid of the daemon group + gid=`dscl . -read /groups/daemon gid` + if [ "x`dscl . -list /users|cut -f2 -d' '|grep $username`" != "x" ]; then + echo The account $username already exists. + exit 0 + fi + # home is the local path to the home directory + home=/Users/$username + echo Creating account for $username... + dscl . -create /users/$username + dscl . -create /users/$username _writers_tim_passwd $username + dscl . -create /users/$username realname $realname + dscl . -create /users/$username _writers_passwd $username + dscl . -create /users/$username gid $gid + dscl . -create /users/$username home $homedir + dscl . -create /users/$username name $username + dscl . -create /users/$username passwd '*' + dscl . -create /users/$username shell /dev/null +else + # Determine the gid of the daemon group + gid=`niutil -readprop $ROOTPROP /groups/daemon gid` + if [ "x`niutil -list $ROOTPROP /users|cut -f2 -d' '|grep $username`" != "x" ]; then + echo The account $username already exists. + exit 0 + fi + # home is the local path to the home directory + home=/Users/$username + # defhome is what goes into NetInfo + defhome="/Network/Servers/MyServer/Users" + #echo "Determining next available system uid (please be patient)..." + # Uids over 500 are for system users. + uiddef=`nidump passwd / | cut -d: -f3 | sort -n | grep -v '^[56789]..' |grep -v '^....$' | tail -n 1` + uiddef=`echo $uiddef + 1 |bc` + echo Creating account for $username... + niutil -create $ROOTPROP /users/$username + niutil -createprop $ROOTPROP /users/$username _writers_tim_passwd $username + niutil -createprop $ROOTPROP /users/$username realname $realname + niutil -createprop $ROOTPROP /users/$username _writers_passwd $username + niutil -createprop $ROOTPROP /users/$username uid $uiddef + #niutil -createprop $ROOTPROP /users/$username home_loc "<home_dir><url>afp://afp.server.com/Users/</url><path>$username</path></home_dir>" + niutil -createprop $ROOTPROP /users/$username gid $gid + niutil -createprop $ROOTPROP /users/$username home $homedir + niutil -createprop $ROOTPROP /users/$username name $username + niutil -createprop $ROOTPROP /users/$username passwd '*' + niutil -createprop $ROOTPROP /users/$username shell /dev/null fi -# home is the local path to the home directory -home=/Users/$username -# defhome is what goes into NetInfo -defhome="/Network/Servers/MyServer/Users" -#echo "Determining next available system uid (please be patient)..." -# Uids over 500 are for system users. -#uiddef=`nidump passwd / | cut -d: -f3 | sort -n | grep -v '^[56789]..' |grep -v '^....$' | tail -n 1` -#uiddef=`echo $uiddef + 1 |bc` -echo Creating account for $username... -dscl . -create /users/$username -dscl . -create /users/$username _writers_tim_passwd $username -dscl . -create /users/$username realname $realname -dscl . -create /users/$username _writers_passwd $username -dscl . -create /users/$username gid $gid -dscl . -create /users/$username home $homedir -dscl . -create /users/$username name $username -dscl . -create /users/$username passwd '*' -dscl . -create /users/$username shell /dev/null |