1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
#determine safe uid/gid
NIUTIL_PRESENT=`which niutil`
if [ -z $NIUTIL_PRESENT] ; then
echo "No niutil"
OPENFIRE_USER=`dscl . -search /Users name openfire | awk '{print $1}'`
OPENFIRE_GID=`dscl . -readall /Users PrimaryGroupID | awk '/PrimaryGroupID/{print $2}' | sort -n | egrep -v "\b[5-9][0-9]{2,5}\b" | tail -n 1`
let "OPENFIRE_GID=$OPENFIRE_GID+1"
echo $OPENFIRE_GID > /private/tmp/openfiregid
if [ -z $OPENFIRE_USER ] ; then
OPENFIRE_UID=`dscl . -readall /Users UniqueID | awk '/UniqueID/{print $2}' | sort -n | egrep -v "\b[5-9][0-9]{2,5}\b" | tail -n 1`
let "OPENFIRE_UID=$OPENFIRE_UID+1"
echo $OPENFIRE_UID
#create user
dscl . -create /Users/openfire
#set properties
dscl . -create /Users/openfire PrimaryGroupID $OPENFIRE_GID
dscl . -create /Users/openfire UniqueID $OPENFIRE_UID
dscl . -create /Users/openfire UserShell /usr/bin/false
dscl . -create /Users/openfire NFSHomeDirectory /usr/local/openfire/
dscl . -create /Users/openfire RealName "Jive Openfire"
dscl . -passwd /Users/openfire '*'
fi
else
OPENFIRE_USER=`nireport / /users name | grep "openfire"`
OPENFIRE_GID=`nireport / /users gid | sort -n | egrep -v "\b[5-9][0-9]{2,5}\b" | tail -n 1`
let "OPENFIRE_GID=$OPENFIRE_GID+1"
echo $OPENFIRE_GID > /private/tmp/openfiregid
if [ -z $OPENFIRE_USER] ; then
OPENFIRE_UID=`nireport / /users uid | sort -n | egrep -v "\b[5-9][0-9]{2,5}\b" | tail -n 1`
let "OPENFIRE_UID=$OPENFIRE_UID+1"
echo $OPENFIRE_UID
#create user
niutil -create . /users/openfire
#set properties
niutil -createprop . /users/openfire gid $OPENFIRE_GID
niutil -createprop . /users/openfire uid $OPENFIRE_UID
niutil -createprop . /users/openfire shell /usr/bin/false
niutil -createprop . /users/openfire home /usr/local/openfire/
niutil -createprop . /users/openfire realname "Jive Openfire"
niutil -createprop . /users/openfire passwd '*'
fi
fi