diff options
Diffstat (limited to 'debian/apt.postinst')
-rw-r--r-- | debian/apt.postinst | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/debian/apt.postinst b/debian/apt.postinst index 6236acd42..4f14703d0 100644 --- a/debian/apt.postinst +++ b/debian/apt.postinst @@ -5,7 +5,18 @@ set -e # set the proxy based on the admin users gconf settings # set_apt_proxy_from_gconf() { - admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1) + # try SUDO_USER first + if [ -n "$SUDO_USER" ]; then + admin_user="$SUDO_USER" + else + admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1) + fi + # test if the user actually exists, getent returns "+" for e.g. + # LDAP + if ! id -u "$admin_user" > /dev/null 2>&1; then + return + fi + # get the settings from gconf if [ -n "$admin_user" ] && [ -x /usr/bin/sudo ] && [ -z "$http_proxy" ] && [ -x /usr/bin/gconftool ]; then use=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/use_http_proxy 2>/dev/null) host=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/host 2>/dev/null) @@ -41,7 +52,7 @@ case "$1" in # that sudo no longer honors http_proxy # this can be removed after lucid is released if dpkg --compare-versions "$2" lt-nl "0.7.25.3ubuntu2"; then - set_apt_proxy_from_gconf + set_apt_proxy_from_gconf || true fi ;; |