zoukankan      html  css  js  c++  java
  • 用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 # 修改为不重置环境






  • 相关阅读:
    JsonResponse
    python导出数据到excel
    ftp上传文件到服务器
    js设计模式 —— 订阅发布模式
    reducer的作用
    redux设置和使用三大原则
    js事件监听
    图片占位符
    正则练习
    正则基础
  • 原文地址:https://www.cnblogs.com/yoursoul/p/6144950.html
Copyright © 2011-2022 走看看