From 39e1068a876a8d6008537b302285e952b69f2eab Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Wed, 2 Sep 2020 00:00:15 +0200 Subject: [PATCH] Don't require sudo before we know we really need it Fixes #665 --- dehydrated | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dehydrated b/dehydrated index 7eef30a..490412b 100755 --- a/dehydrated +++ b/dehydrated @@ -395,16 +395,19 @@ load_config() { # Check for missing dependencies check_dependencies + has_sudo() { + command -v sudo > /dev/null 2>&1 || _exiterr "DEHYDRATED_USER set but sudo not available. Please install sudo." + } + # Check if we are running & are allowed to run as root if [[ -n "$DEHYDRATED_USER" ]]; then - command -v sudo > /dev/null 2>&1 || _exiterr "DEHYDRATED_USER set but sudo not available. Please install sudo." command -v getent > /dev/null 2>&1 || _exiterr "DEHYDRATED_USER set but getent not available. Please install getent." TARGET_UID="$(getent passwd "${DEHYDRATED_USER}" | cut -d':' -f3)" || _exiterr "DEHYDRATED_USER ${DEHYDRATED_USER} is invalid" if [[ -z "${DEHYDRATED_GROUP}" ]]; then if [[ "${EUID}" != "${TARGET_UID}" ]]; then echo "# INFO: Running $0 as ${DEHYDRATED_USER}" - exec sudo -u "${DEHYDRATED_USER}" "${0}" ${ORIGARGS} + has_sudo && exec sudo -u "${DEHYDRATED_USER}" "${0}" ${ORIGARGS} fi else TARGET_GID="$(getent group "${DEHYDRATED_GROUP}" | cut -d':' -f3)" || _exiterr "DEHYDRATED_GROUP ${DEHYDRATED_GROUP} is invalid" @@ -414,7 +417,7 @@ load_config() { fi if [[ "${EUID}" != "${TARGET_UID}" ]] || [[ "${EGID}" != "${TARGET_GID}" ]]; then echo "# INFO: Running $0 as ${DEHYDRATED_USER}/${DEHYDRATED_GROUP}" - exec sudo -u "${DEHYDRATED_USER}" -g "${DEHYDRATED_GROUP}" "${0}" ${ORIGARGS} + has_sudo && exec sudo -u "${DEHYDRATED_USER}" -g "${DEHYDRATED_GROUP}" "${0}" ${ORIGARGS} fi fi elif [[ -n "${DEHYDRATED_GROUP}" ]]; then -- 2.47.3