且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

PYTHONPATH 不适用于 GNU/Linux 上的 sudo(适用于 root)

更新时间:2023-11-13 11:17:28

在我的案例中的修复是从 sudoers 中删除 Defaults !env_reset.

The fix in my case was to remove Defaults !env_reset from sudoers.

但是,我必须在 sudoers 中保留 Defaults env_keep += "PYTHONPATH".
我实际上已经添加了 Defaults env_reset(它会重置环境变量),但由于 env_keep,它仍然有效.

But, I had to keep Defaults env_keep += "PYTHONPATH" in sudoers.
I've actually added Defaults env_reset (which resets environment variables), but it still works because of env_keep.

看起来 env_keep!env_reset 相互冲突,但这只是一个猜测.

It seems that env_keep and !env_reset conflict with eachother, but that's just a guess.

所以,整个过程:

  1. 添加 export PYTHONPATH=/your/custom/path~/.bashrc/etc/bash.bashrc
  2. PYTHONPATH 添加到 sudoers 文件中的 Defaults env_keep += "ENV1 ENV2 ..."
  3. 从 sudoers 文件中删除 Defaults !env_reset(如果存在)
  1. add export PYTHONPATH=/your/custom/path to ~/.bashrc or /etc/bash.bashrc
  2. add PYTHONPATH to Defaults env_keep += "ENV1 ENV2 ..." in sudoers file
  3. remove Defaults !env_reset from sudoers file if present