From: Daniel Molkentin Date: Tue, 1 Sep 2020 22:00:15 +0000 (+0200) Subject: Don't require sudo before we know we really need it X-Git-Tag: v0.7.0~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39e1068a876a8d6008537b302285e952b69f2eab;p=thirdparty%2Fdehydrated.git Don't require sudo before we know we really need it Fixes #665 --- 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