修改使用sudo时的PATH

今天在服务器上安装npm来install brunch,但是始终报错:

1
/usr/bin/env: node: No such file or directory

可是明明我已经在~/.bashrc中添加了node的环境变量。
后来我发现,在运行命令:

1
sudo /usr/bin/env

PATH中并不包含node的环境变量设置,通过查询资料,这时sudo在管理系统时,对PATH进行了重置。
解决方案:

1
2
3
4
5
打开sudo的配置:
          sudo visudo
1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径。这个指令指定当用户执行 sudo 命令时在什么地方寻找二进制代码和命令。这个选项的目的显然是要限制用户运行 sudo 命令的范围,这是一种好做法。
 
2.将Defaults env_reset改成Defaults !env_reset取消掉对PATH变量的重置,然后在.bashrc中最后添加alias sudo='sudo env PATH=$PATH',这样sudo执行命令时所搜寻的路径就是系统的PATH变量中的路径,如想添加其他变量也是类似。

查考资料:http://www.ibm.com/developerworks/cn/aix/library/au-sudo/index.html

由 晓狼 发表于 2013-06-27 1 评论
标签 : ,

1 个评论

评论
七 3, 2013
15:27

虽然使用 su 很方便啦,不过缺点是,当我的主机是多人共管的环境时,如果大家都要使用 su 来切换成为 root 的身份,那么不就每个人都得要知道 root 的口令,这样口令太多人知道可能会流出去, 很不妥当呢!怎办?透过 sudo 来处理即可!

对不起,评论已关闭.

上一篇文章
«
下一篇文章
»
 友情链接:web集结号     京ICP备11006177号