如何执行sudo命令时保留当前用户env变量

在linux环境中我们经常使用sudo命令执行root权限,但默认情况下sudo运行时,会默认重置环境变量为安全的环境变量,也即,但前设置的变量都会失效。可以通过如下设置来取消这种设置:
1、编辑sudoers文件
vim /etc/sudoers
注释掉:

#Defaults       env_reset
#Defaults       mail_badpass
#Defaults       secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

添加

Defaults !env_reset

添加普通用户分配权限

zhangshan ALL=(ALL:ALL) ALL

这里写图片描述
2、添加特殊变量
从 1.6.9 版开始,在 sudo 执行给定的脚本或命令之前,会缩减一些系统环境变量(比如 LIBPATH)【其实就是一些包含path关键字的变量为了安全被缩减了】的设置。这会给在 sudo 下运行的现有命令造成问题。但是,在大多数情况下有办法解决。方法有很多,下面提供一种方法:
在普通用户的.profile或.bashrc中添加如下代码,下面添加PYTHONPATH和LD_LIBRARY_PATH为例:

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64/
export PYTHONPATH=/export/songhongwei/code/py-faster-rcnn/caffe-fast-rcnn/python
alias sudo='sudo env PYTHONPATH=$PYTHONPATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH'
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值