sudo和环境变量继承问题

hgy1234 2009-02-17 11:22:54
Makefile里

export KERNELPATH=$(TOPDIR)/src/kernel
all:
cd ../apps; make; sudo make install

目录../apps里有自己的Makefile。

以普通用户guest执行make时,环境变量$KERNELPATH还是起作用的,但是,一旦sudo之后,环境变量重置,$KERNELPATH就丢了,编译出错。

请教高手,怎么设置sudo的配置文件/etc/sudoers,或者说对sudo版本有没有要求?
(我目前的工作环境是FC10,sudo-1.6.9p17,也试过FC8的sudo-1.6.9p4-2.fc8也是无法环境变量继承。)
...全文
1237 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
langke93 2012-05-29
  • 打赏
  • 举报
回复
1.编辑/etc/sudoers文件把Defaults env_reset改成Defaults !env_reset
2.或者~/.bashrc 添加
if [ -f /etc/profile ]; then
. /etc/profile
fi
hgy1234 2010-04-19
  • 打赏
  • 举报
回复
终于搞清楚环境变量的传递是由/etc/sudoers控制的,要传递什么环境变量,在该文件中加上如下语句即可,例如
Defaults env_keep += "PWD"
hgy1234 2009-02-18
  • 打赏
  • 举报
回复
没办法搞了好久还是没用,只好从rh9的源码包中找了sudo-1.6.6的源码,make; make install

/etc/sudoers的内容是:

User_Alias ADMIN = hgy
ADMIN ALL = NOPASSWD: ALL

root ALL=(ALL) ALL

这下才可以切换用户时,环境变量继承。

嗨,没办法,时间不允许,否则再搞搞清楚。
joyself 2009-02-17
  • 打赏
  • 举报
回复
不需要用root的(即不需要sudo)
普通用户指定 INSTALL_PATH 也是可以的.
你可以在kernel目录下 运行 make help 查看 install 选项说明就知道了:

install - Install kernel using
(your) ~/bin/installkernel or
(distribution) /sbin/installkernel or
install to $(INSTALL_PATH) and run lilo

23,145

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧