summaryrefslogtreecommitdiff
blob: 6001c651f5d65d23c51e0bd9b1399a3277201f27 (plain)
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
54
55
56
57
58
59
60
61
62
From 185923a3c5f11c2d29599416a52b6594bc94d8c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Amadeusz=20=C5=BBo=C5=82nowski?= <aidecoe@aidecoe.name>
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