当我对sudo使用任何命令时,环境变量都不存在.例如,在设置HTTP_代理之后,命令wget在没有sudo的情况下可以正常工作.然而,如果我输入sudo wget,它会说它不能绕过代理设置.

推荐答案

诀窍是通过sudo visudo命令将环境变量添加到sudoers文件中,并添加以下行:

Defaults env_keep += "ftp_proxy http_proxy https_proxy no_proxy"

摘自ArchLinux wiki页.

对于Ubuntu 14,当它返回多变量行的错误时,需要在单独的行中指定:

Defaults  env_keep += "http_proxy"
Defaults  env_keep += "https_proxy"
Defaults  env_keep += "HTTP_PROXY"
Defaults  env_keep += "HTTPS_PROXY"

Linux相关问答推荐

通过shell 脚本基于AM/PM对日期时间字段进行排序

Linux 中大型 TSV 的条件编辑

为什么库中不调用全局变量的构造函数?

Git在某些文件中添加回车符,尽管autocrlf已关闭

线程创建会在 Linux 中触发页面错误吗?它与软脏 PTE 有什么关系?

为什么 perf stat 不计算 cycles:u 在 BIOS 中禁用超线程的 Broadwell CPU 上?

Linux PREEMPT_RT:SCHED_OTHER 的性能优于 SCHED_FIFO.为什么?

c++进程状态中的+是什么意思

最小的 x86_64 Hello World ELF 二进制文件是什么?

`G++ 4.9.4` 中关于 WEXITSTATUS 的奇怪行为

sig_atomic_t 实际上是如何工作的?

判断指定名称的画面是否存在

为什么在 find 命令中使用 dirname 会 for each 匹配项提供点?

获取变量中的当前路径并使用它

来自远程主机的 mysqldump

为什么 mmap() 比顺序 IO 快?

如何在 Linux 中使用单行命令获取 Java 版本

Linux下的签名可执行文件

判断环境变量是否已经设置

如何将文件夹中的文件列表发送到Linux中的txt文件