summaryrefslogtreecommitdiffstats
path: root/vespabase/src/rhel-prestart.sh
diff options
context:
space:
mode:
Diffstat (limited to 'vespabase/src/rhel-prestart.sh')
-rwxr-xr-xvespabase/src/rhel-prestart.sh25
1 files changed, 19 insertions, 6 deletions
diff --git a/vespabase/src/rhel-prestart.sh b/vespabase/src/rhel-prestart.sh
index 79a8e61848c..0aedfb4622d 100755
--- a/vespabase/src/rhel-prestart.sh
+++ b/vespabase/src/rhel-prestart.sh
@@ -85,6 +85,7 @@ fi
if [ "$VESPA_GROUP" = "" ]; then
VESPA_GROUP=$(id -rgn)
fi
+IS_ROOT=$([ "$(id -ru)" == "0" ] && echo true || echo false)
cd $VESPA_HOME || { echo "Cannot cd to $VESPA_HOME" 1>&2; exit 1; }
@@ -94,9 +95,21 @@ fixdir () {
exit 1
fi
mkdir -p "$4"
- if [ "${VESPA_UNPRIVILEGED}" != yes ]; then
- chown $1 "$4"
- chgrp $2 "$4"
+ if ! $IS_ROOT; then
+ local stat="$(stat -c "%U %G" $4)"
+ local user=${stat% *}
+ local group=${stat#* }
+ if [ "$1" != "$user" ]; then
+ echo "Wrong owner for $VESPA_HOME/$4, expected $1, was $user"
+ exit 1
+ fi
+ if [ "$2" != "$group" ]; then
+ echo "Wrong group for $VESPA_HOME/$4, expected $2, was $group"
+ exit 1
+ fi
+ else
+ chown $1 "$4"
+ chgrp $2 "$4"
fi
chmod $3 "$4"
}
@@ -130,9 +143,9 @@ fixdir ${VESPA_USER} ${VESPA_GROUP} 755 var/vespa/bundlecache
fixdir ${VESPA_USER} ${VESPA_GROUP} 755 var/vespa/bundlecache/configserver
fixdir ${VESPA_USER} ${VESPA_GROUP} 755 var/vespa/cache/config
-if [ "${VESPA_UNPRIVILEGED}" != yes ]; then
- chown -hR ${VESPA_USER} logs/vespa
- chown -hR ${VESPA_USER} var/db/vespa
+if [ "$(id -u)" -eq 0 ]; then
+ chown -hR ${VESPA_USER} logs/vespa
+ chown -hR ${VESPA_USER} var/db/vespa
fi
# END directory fixups