免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14118 | 回复: 11
打印 上一主题 下一主题

【已解决】请教如何让环境变量能够通过sudo传递进去。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-15 10:02 |只看该作者 |倒序浏览
本帖最后由 蓝白725 于 2010-11-16 09:31 编辑

RHEL5.3下,我用自己的用户名登录后,使用export命令定义了一个环境变量,然后在通过sudo的方式执行一个脚本的时候,该脚本提示找不到该环境变量,可是我通过sudo echo <env_name>的方式可以打印出该环境变量的值。

各位大侠帮帮忙,为什么sudo执行脚本就获取不到那个环境变量呢?
谢谢啦!

【解决方案】
在/etc/sudoers中修改:
Defaults    env_reset
为:
Defaults    !env_reset

这样,任何环境变量都可以通过sudo传进去了。

论坛徽章:
0
2 [报告]
发表于 2010-11-15 10:06 |只看该作者
回复 1# 蓝白725


    那你就把变量写到那个脚本里面去好了,sudo肯定是不会带这个用户的变量过去的,因为两个用户不一样,除非你通过sudo的时候加export去携带。

论坛徽章:
0
3 [报告]
发表于 2010-11-15 10:10 |只看该作者
应该是可以通过配置/etc/sudoers的方式传进去,我以前试过,但是现在实在不记得当时是怎么弄的了。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
4 [报告]
发表于 2010-11-15 10:11 |只看该作者
楼主尝试
  1. su - -c "命令集"
复制代码

论坛徽章:
0
5 [报告]
发表于 2010-11-15 10:17 |只看该作者
谢谢楼上的。不过不是很明白啊。。。
su - -c "命令集" 在哪儿使用呢?用作什么呢?

论坛徽章:
0
6 [报告]
发表于 2010-11-15 11:04 |只看该作者
回复 5# 蓝白725


    su -c 跟sudo基本是一样的。
你可以把sudo后面的命令写成多个而已,用;分割

论坛徽章:
0
7 [报告]
发表于 2010-11-15 11:09 |只看该作者
谢谢。
不过我希望的是,能够不改我的脚本,通过修改系统配置的方式把环境变量传进去。
以前好像通过在/etc/sudoers中配置env_reset和env_keep的方式搞定过。。。

论坛徽章:
0
8 [报告]
发表于 2010-11-15 11:12 |只看该作者
回复 7# 蓝白725


    那你直接写到/etc/profile里面不就得了

论坛徽章:
0
9 [报告]
发表于 2010-11-15 16:25 |只看该作者
搞定了!在/etc/sudoers中修改:
Defaults    env_reset
为:
Defaults    !env_reset

这样,任何环境变量都可以通过sudo传进去了。

论坛徽章:
0
10 [报告]
发表于 2010-11-15 18:17 |只看该作者
验证成功,又学会了一个小技巧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP