sudo zypper 使用系统代理的一个新解法

在给本机配置完代理后,zypper 却不使用代理联网。为此,我检查了一些环境,最后发现是 sudo 为了保证安全,默认清理了’http_proxy’在内的一系列环境变量:

相关环境变量丢失验证
❯ sudo env
COLORTERM=truecolor
LANG=zh_CN.UTF-8
LANGUAGE=
TERM=xterm-256color
MAIL=/var/mail/root
PATH=/usr/sbin:/usr/bin:/sbin:/bin
LOGNAME=root
USER=root
HOME=/root
SHELL=/bin/bash
SUDO_COMMAND=/usr/bin/env
SUDO_USER=huang
SUDO_UID=1000
SUDO_GID=100

经查,可以修改/etc/sudoers来设置保持指定的环境变量:

Defaults env_keep += "http_proxy https_proxy ftp_proxy no_proxy all_proxy"
相关环境变量保持验证
❯ sudo env
COLORTERM=truecolor
LANG=zh_CN.UTF-8
LANGUAGE=
TERM=xterm-256color
https_proxy=http://127.0.0.1:7890
http_proxy=http://127.0.0.1:7890
all_proxy=socks5://127.0.0.1:7890
MAIL=/var/mail/root
PATH=/usr/sbin:/usr/bin:/sbin:/bin
LOGNAME=root
USER=root
HOME=/root
SHELL=/bin/bash
SUDO_COMMAND=/usr/bin/env
SUDO_USER=huang
SUDO_UID=1000
SUDO_GID=100

本方案与现有方案对比:

方案 根据当前用户设置动态修改 影响 CLI 等无本机代理环境时操作
本方案 :ballot_box_with_check: :ballot_box_with_check:
修改/etc/privoxy/config
修改/etc/sysconfig/proxy
修改/etc/environment