#!/bin/sh # # Original adduser 05 Feb 2002 by Jon L. Gardner # # Modified for Tor installer by Nick Mathewson # 2007-06-12 Modified for leopard by Andrew Lewman # Copyright (c) 2007 Andrew Lewman # ROOTPROP=/ if [ "`whoami`" != "root" ]; then echo "You must be root to execute this script." exit fi if [ "x$3" = "x" ]; then echo 'Usage: addsysuser "" ' exit 0 fi username=$1 realname=$2 homedir=$3 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 "afp://afp.server.com/Users/$username" 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