From 3e232952ea587a4d4c42e37f1a3dbdc3c5750b41 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sun, 27 Jul 2014 11:21:55 +0200 Subject: [PATCH] ejabberdctl: Omit su(1)'s "-p" flag On Linux, su(1)'s "-p" flag makes sure the following environment variables are preserved: $HOME, $SHELL, $USER, and $LOGNAME. The flag isn't portable, and since we don't set HOME=$SPOOLDIR anymore, there's no reason to preserve these variables anyway. Without "-p", we also don't need to set HOME=$INSTALLUSER_HOME, as su(1) now does that for us. --- ejabberdctl.template | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index 204d22509..4e8234c99 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -23,15 +23,11 @@ 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 + if [ -n "$INSTALLUSER_HOME" ] && [ ! -d "$INSTALLUSER_HOME" ] ; then mkdir -p "$INSTALLUSER_HOME" chown "$INSTALLUSER" "$INSTALLUSER_HOME" fi - EXEC_CMD="env HOME=$INSTALLUSER_HOME su $INSTALLUSER -p -c" + EXEC_CMD="su $INSTALLUSER -c" fi done if [ `id -g` -eq `id -g $INSTALLUSER` ] ; then