linux 使用 sudo 将 运行 pyenv 的路径附加到 secure_path

linux append path to secure_path for running pyenv with sudo

我已经安装了pyenv,但是当我运行sudo pip install xx

sudo: pip: command not found 

我知道将 /app/pyenv/shims:/app/pyenv/bin(my PYENV_ROOT='/app/pyenv') 附加到 secure_path 并使用

Defaults secure_path += /app/pyenv/shims

/etc/sudoers.d/pyenv 中,但因

而失败
/usr/bin/env: bash: No such file or directory

echo 'echo $PATH' | sudo /bin/bash

的输出
/app/pyenv/shims

显示secure_path刚刚被覆盖。

那么我怎样才能以最好的方式在 secure_path 的原始基础上附加路径?

好像没办法像Defaults secure_path += /app/pyenv/shims那样在original secure_path上加上new_path,但是有其他方法可以解决,现在secure_path不变:

  1. sudo -i cmd,它会执行用户的配置文件,ref from https://unix.stackexchange.com/a/8695 (best)

    echo 'echo $PATH' | sudo -i /bin/bash
    /app/pyenv/shims:/app/pyenv/bin:/app/pyenv/shims:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/root/bin  
    
  2. 添加 Defaults exempt_group=user1 ,ref from exempt_group and The exempt_group option in sudo

    exempt_group Users in this group are exempt from password and PATH requirements. The group name specified should not include a % prefix. This is not set by default.

顺便说一句:任何人都知道如何在 original secure_path 上添加 new_path,例如 Defaults secure_path += /app/pyenv/shims 和 post,我们将不胜感激!