mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-20 16:15:59 +01:00
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.
This commit is contained in:
parent
43000d9ce4
commit
46f01b962a
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user