首 页最新软件下载排行文章资讯投稿发布下载专题
维维下载站
您的位置:首页编程开发网络编程编程其它 → 利用sudo命令无法读取环境变量的解决办法

利用sudo命令无法读取环境变量的解决办法

来源:维维整理 发布时间:2017-4-9 19:00:58 人气:

Sudo是Unix/Linux平台上的一个很有用的工具,它是一个允许系统管理员允许普通用户执行部分或全部root命令的工具,例如halt,reboot,Su等。我今天想和朋友分享的是使用sudo命令不读取解决环境变量。

通过sudo -l来查看sudo的限制:

$ sudo -l

Matching Defaults entries for xxx on this host:

env_reset, mail_badpass,

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

User xxx may run the following commands on this host:

(ALL : ALL) NOPASSWD: ALL

请注意,选项Defaults env_reset的第一行表示默认情况下将重置环境变量,因此您定义的变量在sudo环境中将不可用。

此外,某些发行版还具有Defaults env_keep =“”选项,该选项用于防止某些环境变量被重置。需要保留的变量用双引号括起来。

解决办法:

1、在用户的主目录里的.bashrc中添加:

alias sudo='sudo env PATH=$PATH'

2、sudo visudo

# Defaults env_reset   # 注释掉原有配置

# Defaults env_keep=”…”  # 注释掉指定的变量保持

Defaults !env_reset  # 修改为不重置环境

相关下载
栏目导航
本类热门阅览