首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >dyld:忽略DYLD_环境变量,因为主可执行文件(/usr/bin/sudo)是setuid或setgid

dyld:忽略DYLD_环境变量,因为主可执行文件(/usr/bin/sudo)是setuid或setgid
EN

Stack Overflow用户
提问于 2012-08-22 08:03:44
回答 7查看 25.8K关注 0票数 48

自从更新到10.8后,当我尝试执行sudo命令时,我得到了以下错误,这是非常恼人的。

代码语言:javascript
复制
dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid

这意味着什么?我希望有人能帮上忙。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-08-22 20:39:53

这似乎是10.8中引入的错误,请参阅this report。据我所知,唯一的解决方法不是默认设置DYLD_LIBRARY_PATH或LD_LIBRARY_PATH,而是仅在需要时设置。

票数 43
EN

Stack Overflow用户

发布于 2013-02-26 23:49:04

在zsh中:

代码语言:javascript
复制
sudo () { ( unset LD_LIBRARY_PATH DYLD_LIBRARY_PATH; exec command sudo $* ) }

这将产生一个子shell,其中未设置sudo所抱怨的环境变量,然后执行sudo (通过exec,以便现在不需要的父shell立即退出)。

我将把它留给读者作为练习,从port到bash等等。

票数 20
EN

Stack Overflow用户

发布于 2013-04-17 10:00:19

不知道官方解决方案在哪里,但我用bashrc hack解决了它,因为我再也不能处理看到那个该死的警告了。

将其放入/etc/bashrc或您所在的任何位置。

代码语言:javascript
复制
# set DYLD_* for my normal programs
DYLD_LIBRARY_PATH='..'
 
# set an alternative sudo
thesudo()
{
# back up the DYLD_* variables
local BACK=$DYLD_LIBRARY_PATH
# unset DYLD_*
unset DYLD_LIBRARY_PATH
# calling sudo
/usr/bin/sudo "$@"
# restore DYLD_* after sudo finished
export DYLD_LIBRARY_PATH=$BACK
}
 
# redirect sudo
alias sudo=thesudo
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12064725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档