❏ 站外平台:

Linux有问必答:如何为sudo命令定义PATH环境变量

译者: LCTT nd0104

| 2014-09-02 10:04   评论: 4 收藏: 2 分享: 4    

问题:我安装了一个程序到/usr/local/bin目录下,这个程序需要root权限才能执行,当我用sudo去执行它时,收到"sudo: XXXXX: command not found"的错误提示,不知道为什么/usr/local/bin没有被包含到PATH环境变量下面来,我该如何解决这个问题?

当你使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化的环境中执行,也就是说,诸如PATH这样的环境变量,在sudo命令下已经被重置成默认状态了。所以当一个刚初始化的PATH变量中不包含你所要运行的程序所在的目录,用sudo去执行,你就会得到"command not found"的错误提示。

要想改变PATH在sudo会话中的初始值,用文本编辑器打开/etc/sudoers文件,找到"secure_path"一行,当你执行sudo 命令时,"secure_path"中包含的路径将被当做默认PATH变量使用。

添加所需要的路径(如 /usr/local/bin)到"secure_path"下,在开篇所遇见的问题就将迎刃而解。

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

这个修改会即刻生效。


via: http://ask.xmodulo.com/define-path-environment-variable-sudo-commands.html

译者:nd0104 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出



最新评论

LiYang 2014-09-04 16:26 4 回复
学习了~~
koolar 2014-09-03 15:14 3 回复
学习了,谢谢回答!!!
微博评论 2014-09-02 15:33 3 回复
没有配置环境变量
微博评论 2014-09-02 13:03 4 回复
Repost
LCTT 译者
nd0104 🌟🌟
共计翻译: 6.0 篇 | 共计贡献: 21
贡献时间:2014-07-10 -> 2014-07-30
访问我的 LCTT 主页 | 在 GitHub 上关注我


返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。