看起来这个错误已经存在了很长一段时间了!以下是一些您可能会觉得有帮助的错误参考(并且可能想要订阅/投票、提示、提示...):
Debian bug #85123 ("sudo: SECURE_PATH still can't be overridden") (from 2001!)
这个版本的 sudo 中似乎仍然存在 Bug#20996。这
更改日志说它可以在运行时被覆盖,但我还没有
发现了如何。
他们提到在你的 sudoers 文件中添加这样的内容:
Defaults secure_path="/bin:/usr/bin:/usr/local/bin"
但是当我至少在 Ubuntu 8.10 中这样做时,它给了我这个错误:
visudo: unknown defaults entry `secure_path' referenced near line 10
Ubuntu bug #50797 ("sudo built with --with-secure-path is problematic")
更糟糕的是,据我所知,它
无法重新指定secure_path
在 sudoers 文件中。所以如果,对于
例如,您想为您的用户提供
轻松访问 /opt 下的内容,
你必须重新编译 sudo。
是的。 需要有一种方法
覆盖此“功能”而无需
重新编译。没有比这更糟糕的了
安全偏执者告诉你什么是
最适合您的环境,然后不是
为您提供关闭它的方法。
这真的很烦人。有可能
明智的做法是保持当前行为
出于安全原因默认,但
应该有一种方法可以覆盖它
除了从源代码重新编译
代码!很多人都需要 PATH
遗产。我想知道为什么没有
维护人员对其进行了调查,这似乎
容易想出一个可以接受的
解决方案。
我是这样解决它的:
mv /usr/bin/sudo /usr/bin/sudo.orig
然后创建一个包含以下内容的文件 /usr/bin/sudo:
#!/bin/bash
/usr/bin/sudo.orig env PATH=$PATH "$@"
那么您的常规 sudo 就像非安全路径 sudo 一样工作
Ubuntu bug #192651 ("sudo path is always reset")
鉴于此错误的副本是
最初于 2006 年 7 月提交,我不是
清除无效的 env_keep 多长时间
一直在运行。不管是什么
强迫用户雇佣的好处
上面列出的技巧,
当然是 sudo 的手册页和
sudoers 应该反映这样一个事实:
修改 PATH 的选项是
实际上是多余的。
修改文档以反映
实际执行不会破坏稳定
并且很有帮助。
Ubuntu bug #226595 ("impossible to retain/specify PATH")
我需要能够运行 sudo
其他非标准二进制文件夹
路径。已经添加了我的
我对 /etc/environment 的要求
当我收到错误时感到惊讶
运行时缺少命令
在 sudo 下.....
我尝试了以下方法来解决这个问题
没有成功:
使用“sudo -E”选项 - 不起作用。我现有的 PATH 仍然由 sudo 重置
在 /etc/sudoers 中将“Defaults env_reset”更改为“Defaults !env_reset”也不起作用(即使与 sudo -E 结合使用)
在 /etc/sudoers 中取消注释 env_reset(例如“#Defaults env_reset”)也不起作用。
将 'Defaults env_keep += "PATH"' 添加到 /etc/sudoers -- 也不起作用。
显然——尽管这个人
文档 - sudo 完全是
关于 PATH 的硬编码,而不是
允许关于任何灵活性
保留用户路径。非常
烦人,因为我无法运行非默认值
root权限下的软件使用
须藤。