用sudo命令无法读取环境变量的处理方法
发布时间:2022-07-06 12:56:08 所属栏目:百科 来源:互联网
导读:通过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
通过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 # 修改为不重置环境 (编辑:我爱制作网_潮州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |