From 185923a3c5f11c2d29599416a52b6594bc94d8c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= Date: Mon, 29 Aug 2016 22:29:41 +0100 Subject: [PATCH] Adjust ejabberdctl for Gentoo jabberbase setup Set SHELL since the generic jabber user used on Gentoo for jabber servers doesn't have a valid shell set by default and fix EXEC_CMD otherwise it fails with "This account is currently not available" again due to jabber not having a valid shell. Also, workaround the assumption that jabber's $HOME is a directory when instead it defaults to /dev/null on Gentoo. --- ejabberdctl.template | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index 5b34ebe..3c080fd 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -16,6 +16,7 @@ IEX={{bindir}}/iex EPMD={{epmd}} INSTALLUSER={{installuser}} ERL_LIBS={{libdir}} +SHELL=/bin/sh # check the proper system user is used if defined if [ "$INSTALLUSER" != "" ] ; then @@ -23,11 +24,11 @@ if [ "$INSTALLUSER" != "" ] ; then for GID in `id -G`; do if [ $GID -eq 0 ] ; then INSTALLUSER_HOME=$(getent passwd "$INSTALLUSER" | cut -d: -f6) - if [ -n "$INSTALLUSER_HOME" ] && [ ! -d "$INSTALLUSER_HOME" ] ; then + if [ -n "$INSTALLUSER_HOME" ] && [ ! -e "$INSTALLUSER_HOME" ] ; then mkdir -p "$INSTALLUSER_HOME" chown "$INSTALLUSER" "$INSTALLUSER_HOME" fi - EXEC_CMD="su $INSTALLUSER -c" + EXEC_CMD="su $INSTALLUSER -p -c" fi done if [ `id -g` -eq `id -g $INSTALLUSER` ] ; then @@ -91,6 +92,7 @@ EJABBERD_LOG_PATH=$LOGS_DIR/ejabberd.log DATETIME=`date "+%Y%m%d-%H%M%S"` ERL_CRASH_DUMP=$LOGS_DIR/erl_crash_$DATETIME.dump ERL_INETRC=$ETC_DIR/inetrc +HOME=$SPOOL_DIR # define mnesia options MNESIA_OPTS="-mnesia dir \"\\\"$SPOOL_DIR\\\"\" $MNESIA_OPTIONS" @@ -149,6 +151,8 @@ export ERL_MAX_ETS_TABLES export CONTRIB_MODULES_PATH export CONTRIB_MODULES_CONF_DIR export ERL_LIBS +export HOME +export SHELL shell_escape_str() { -- 2.9.2