python用户环境变量找不到_解决sudo用户找不到环境变量的问题

出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态。所以PATH这个变量不包括用户自定义设置的内容

在sudo用户的主目录里的.bashrc中添加如下内容即可解决

$ vim ~/.bashrc

alias sudo="sudo env PATH=$PATH"

有这样一个shell脚本,其内容如下,没有给其x权限

vim test.sh

#!/bin/bash

echo "${PATH}"

# 执行该脚本,可以看到echo输出的结果

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ bash test.sh

/opt/ossutil:/opt/openresty/nginx/sbin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/jdk1.8/bin:/opt/jdk1.8/jre/bin:/home/test_ops/.local/bin:/home/test_ops/bin

# 但是加上sudo,上述结果就不显示了,而是一个系统默认的${PATH}变量结果

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ sudo bash test.sh

/sbin:/bin:/usr/sbin:/usr/bin

# 因其没有x权限,所以无法这样执行

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ sudo ./test.sh

sudo: ./test.sh: command not found

# 给该脚本加上x权限

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ chmod a+x test.sh

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ ll

total 4

-rwxrwxr-x 1 test_ops test_ops 28 Sep 11 11:55 test.sh

# 可以执行,但结果相同

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ sudo ./test.sh

/sbin:/bin:/usr/sbin:/usr/bin

# 在用户的主目录里的.bashrc中添加如下内容

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ vim ~/.bashrc

alias sudo="sudo env PATH=$PATH"

# 退出登陆后再次执行,其结果正是自己想要的效果

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ sudo ./test.sh

/opt/ossutil:/opt/openresty/nginx/sbin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/jdk1.8/bin:/opt/jdk1.8/jre/bin

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ sudo bash test.sh

/opt/ossutil:/opt/openresty/nginx/sbin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/jdk1.8/bin:/opt/jdk1.8/jre/bin

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ bash test.sh

/opt/ossutil:/opt/openresty/nginx/sbin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/jdk1.8/bin:/opt/jdk1.8/jre/bin:/home/test_ops/.local/bin:/home/test_ops/bin

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$ ./test.sh

/opt/ossutil:/opt/openresty/nginx/sbin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/jdk1.8/bin:/opt/jdk1.8/jre/bin:/home/test_ops/.local/bin:/home/test_ops/bin

[test_ops@iZ2zej3o3e9be3aoukimfzZ ~]$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值