加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 百科 > 正文

用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     # 修改为不重置环境

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读