看来这个错误已经存在了很长时间!以下是一些错误参考,您可能会发现有帮助(并且可能想要订阅/投票,提示,提示...):
Debian错误#85123(“ sudo:SECURE_PATH仍然无法覆盖”)(从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错误#50797(“使用--with-secure-path构建的sudo存在问题”)
更糟糕的是,据我所知,无法在sudoers文件中重新指定secure_path。因此,例如,如果您想让您的用户轻松访问/ 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错误#192651(“总是重置sudo路径”)
鉴于此错误的副本最初是在2006年7月提交的,因此我尚不清楚无效的env_keep运行了多长时间。无论强迫用户使用上述技巧的优点是什么,sudo和sudoers的手册页都应该肯定反映出修改PATH的选项实际上是多余的事实。
修改文档以反映实际执行不会破坏稳定且非常有帮助。
Ubuntu错误#226595(“无法保留/指定PATH”)
我需要能够在PATH中与其他非std二进制文件夹一起运行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中添加' '也不起作用。
显然,尽管有man文档,但sudo已完全硬编码为PATH,并且在保留用户PATH方面没有任何灵活性。非常烦人,因为我无法使用sudo在root权限下运行非默认软件。