From cd4f6eb2c0f2b2701e25eb3f90ff101c798310e0 Mon Sep 17 00:00:00 2001 From: Carlo Cabrera <30379873+carlocab@users.noreply.github.com> Date: Sun, 25 Aug 2024 17:59:35 +0800 Subject: [PATCH] bin/brew: improve `sudo` handling - prioritise `/usr/bin/sudo` instead of any random `sudo` in `PATH` --- bin/brew | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/bin/brew b/bin/brew index 972bfa3eda..5c527f632d 100755 --- a/bin/brew +++ b/bin/brew @@ -36,12 +36,6 @@ then exit 1 fi -# Reset sudo timestamp to avoid running unauthorized sudo commands -if command -v sudo >/dev/null -then - sudo --reset-timestamp 2>/dev/null || true -fi - quiet_cd() { CDPATH='' cd -- "$@" &>/dev/null || return } @@ -63,6 +57,22 @@ do done unset cmd +# Avoid picking up any random `sudo` in `PATH`. +if [[ -x /usr/bin/sudo ]] +then + SUDO=/usr/bin/sudo +else + # Do this after ensuring we're using default Bash builtins. + SUDO="$(command -v sudo 2>/dev/null)" +fi + +# Reset sudo timestamp to avoid running unauthorized sudo commands +if [[ -n "${SUDO}" ]] +then + "${SUDO}" --reset-timestamp 2>/dev/null || true +fi +unset SUDO + # Take the HOMEBREW_PATH if we are running brew within brew, otherwise we would lose the original path. if [[ -n "${HOMEBREW_BREW_FILE:-}" && -n "${HOMEBREW_PATH:-}" ]] then