From 907da26e335b84c29b159d082fdc6ee23fcfba69 Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Tue, 19 Dec 2023 22:39:44 -0800 Subject: [PATCH 1/5] sudo: Prioritize sudo_as_root over HOMEBREW_SUDO_THROUGH_SUDO_USER. --- Library/Homebrew/system_command.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/system_command.rb b/Library/Homebrew/system_command.rb index e1110c0ca5..89e4017625 100644 --- a/Library/Homebrew/system_command.rb +++ b/Library/Homebrew/system_command.rb @@ -183,15 +183,15 @@ class SystemCommand def sudo_prefix askpass_flags = ENV.key?("SUDO_ASKPASS") ? ["-A"] : [] user_flags = [] - if Homebrew::EnvConfig.sudo_through_sudo_user? + if sudo_as_root? + user_flags += ["-u", "root"] + elsif Homebrew::EnvConfig.sudo_through_sudo_user? raise ArgumentError, "HOMEBREW_SUDO_THROUGH_SUDO_USER set but SUDO_USER unset!" if homebrew_sudo_user.blank? user_flags += ["--prompt", "Password for %p:", "-u", homebrew_sudo_user, *askpass_flags, "-E", *env_args, "--", "/usr/bin/sudo"] - elsif sudo_as_root? - user_flags += ["-u", "root"] end ["/usr/bin/sudo", *user_flags, *askpass_flags, "-E", *env_args, "--"] end From f71189ae4d1b2964fd5c181ea56fb153c7842146 Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Wed, 20 Dec 2023 09:36:46 -0800 Subject: [PATCH 2/5] Revert "sudo: Prioritize sudo_as_root over HOMEBREW_SUDO_THROUGH_SUDO_USER." This reverts commit 907da26e335b84c29b159d082fdc6ee23fcfba69. --- Library/Homebrew/system_command.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/system_command.rb b/Library/Homebrew/system_command.rb index 89e4017625..e1110c0ca5 100644 --- a/Library/Homebrew/system_command.rb +++ b/Library/Homebrew/system_command.rb @@ -183,15 +183,15 @@ class SystemCommand def sudo_prefix askpass_flags = ENV.key?("SUDO_ASKPASS") ? ["-A"] : [] user_flags = [] - if sudo_as_root? - user_flags += ["-u", "root"] - elsif Homebrew::EnvConfig.sudo_through_sudo_user? + if Homebrew::EnvConfig.sudo_through_sudo_user? raise ArgumentError, "HOMEBREW_SUDO_THROUGH_SUDO_USER set but SUDO_USER unset!" if homebrew_sudo_user.blank? user_flags += ["--prompt", "Password for %p:", "-u", homebrew_sudo_user, *askpass_flags, "-E", *env_args, "--", "/usr/bin/sudo"] + elsif sudo_as_root? + user_flags += ["-u", "root"] end ["/usr/bin/sudo", *user_flags, *askpass_flags, "-E", *env_args, "--"] end From 9b672b0e455083a8777ad93e5e2e2c740ee430fe Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Wed, 20 Dec 2023 09:39:10 -0800 Subject: [PATCH 3/5] sudo: sudo_as_root should apply on top of HOMEBREW_SUDO_THROUGH_SUDO_USER System commands run with sudo_as_root must be run as regardless of who is running sudo. --- Library/Homebrew/system_command.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/system_command.rb b/Library/Homebrew/system_command.rb index e1110c0ca5..eec820b073 100644 --- a/Library/Homebrew/system_command.rb +++ b/Library/Homebrew/system_command.rb @@ -190,7 +190,8 @@ class SystemCommand *askpass_flags, "-E", *env_args, "--", "/usr/bin/sudo"] - elsif sudo_as_root? + end + if sudo_as_root? user_flags += ["-u", "root"] end ["/usr/bin/sudo", *user_flags, *askpass_flags, "-E", *env_args, "--"] From 4783c5b9fe490efa0dbbf0297009c54d8a1a90a7 Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Wed, 20 Dec 2023 10:05:43 -0800 Subject: [PATCH 4/5] Fix syntax errors. --- Library/Homebrew/system_command.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Library/Homebrew/system_command.rb b/Library/Homebrew/system_command.rb index eec820b073..c9c9aed345 100644 --- a/Library/Homebrew/system_command.rb +++ b/Library/Homebrew/system_command.rb @@ -191,9 +191,7 @@ class SystemCommand "-E", *env_args, "--", "/usr/bin/sudo"] end - if sudo_as_root? - user_flags += ["-u", "root"] - end + user_flags += sudo_as_root? ? ["-u", "root"] : [] ["/usr/bin/sudo", *user_flags, *askpass_flags, "-E", *env_args, "--"] end From 5f7db2b7329584c7e73fad15471e55c54daf3fe2 Mon Sep 17 00:00:00 2001 From: Ilya Kulakov Date: Thu, 21 Dec 2023 01:16:09 -0800 Subject: [PATCH 5/5] Fix syntax errors. Co-authored-by: Mike McQuaid --- Library/Homebrew/system_command.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/system_command.rb b/Library/Homebrew/system_command.rb index c9c9aed345..80ef1e3a9c 100644 --- a/Library/Homebrew/system_command.rb +++ b/Library/Homebrew/system_command.rb @@ -191,7 +191,7 @@ class SystemCommand "-E", *env_args, "--", "/usr/bin/sudo"] end - user_flags += sudo_as_root? ? ["-u", "root"] : [] + user_flags += ["-u", "root"] if sudo_as_root? ["/usr/bin/sudo", *user_flags, *askpass_flags, "-E", *env_args, "--"] end