June 2017

如果用sudo执行python命令的话,会发现import os; os.getenv(“PATH”)得到的变量和普通权限得到的不一致,即使是sudo加上-E参数也没有用。 这是sudoers的默认行为导致的,解决方案: sudo visudo Defaults env_reset 改为Defaults !env_reset,注意,加了!号 同时注释掉 Defaults secure_path 改完记得注销一下。 不需要以sudo执行python的时候记得改回来,防止出现权限安全问题。 这个奇葩的问题Google居然搜不到,看来是个神坑,分析过程如下: 既然问题的根源是sudo -E python都无法继承当前的环境变量,那么首先man sudo 搜索-E参数,发现是这么写的: -E, –preserve-env Indicates to the security policy that the […]