Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2014-07-24 19:16:47 +0400
committerHolger Weiss <holger@zedat.fu-berlin.de>2014-07-24 19:16:47 +0400
commit46f01b962ae51d402dd564937aa69d631a21de66 (patch)
treed7e533f41950033dcea111f1bb0df819965fa83e /ejabberdctl.template
parent43000d9ce4148a4b33e31ee217b11d8643fcb2b0 (diff)
ejabberdctl: Create home directory as root
If the $INSTALLUSER is not root, he will usually not have the necessary permissions to create his home directory.
Diffstat (limited to 'ejabberdctl.template')
-rwxr-xr-xejabberdctl.template12
1 files changed, 8 insertions, 4 deletions
diff --git a/ejabberdctl.template b/ejabberdctl.template
index b9f372514..a4d4680e2 100755
--- a/ejabberdctl.template
+++ b/ejabberdctl.template
@@ -23,6 +23,14 @@ if [ "$INSTALLUSER" != "" ] ; then
for GID in `id -G`; do
if [ $GID -eq 0 ] ; then
INSTALLUSER_HOME=$(getent passwd "$INSTALLUSER" | cut -d: -f6)
+ if [ -z "$INSTALLUSER_HOME" ] ; then
+ echo "Cannot determine home directory of $INSTALLUSER" >&2
+ exit 1
+ fi
+ if [ ! -d "$INSTALLUSER_HOME" ] ; then
+ mkdir -p "$INSTALLUSER_HOME"
+ chown "$INSTALLUSER" "$INSTALLUSER_HOME"
+ fi
EXEC_CMD="env HOME=$INSTALLUSER_HOME su $INSTALLUSER -p -c"
fi
done
@@ -143,10 +151,6 @@ fi
[ -z "$date" ] || EJABBERD_OPTS="${EJABBERD_OPTS} log_rotate_date '$date'"
[ -z "$EJABBERD_OPTS" ] || EJABBERD_OPTS="-ejabberd ${EJABBERD_OPTS}"
-# create the ejabberd home dir with the proper user if doesn't exist
-# then change to that directory readable by INSTALLUSER to
-# prevent "File operation error: eacces." messages
-[ -d $HOME ] || $EXEC_CMD "mkdir -p $HOME"
[ -d $SPOOL_DIR ] || $EXEC_CMD "mkdir -p $SPOOL_DIR"
# then set SPOOL_DIR as ejabberd home directory by changing
# to that directory readable by INSTALLUSER to prevent