linux将安全路径的路径追加到sudo运行pyenv

时间:2017-05-03 07:13:36

标签: linux bash path sudo pyenv

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

sudo: pip: command not found 

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

Defaults secure_path += /app/pyenv/shims
<{1>}中的

,但

失败
/etc/sudoers.d/pyenv

/usr/bin/env: bash: No such file or directory

的输出
echo 'echo $PATH' | sudo /bin/bash

表明secure_path只是被覆盖。

那么如何以最佳方式在secure_path的原始基础上追加路径?

2 个答案:

答案 0 :(得分:0)

将pyenc bin目录添加到PATH变量 export PATH="/app/pyenv/bin:$PATH"

答案 1 :(得分:0)

似乎无法像new_path一样在original secure_path上添加Defaults secure_path += /app/pyenv/shims,但还有其他方法可以解决它,而现在没有更改secure_path

  1. sudo -i cmd,它会执行用户的个人资料,来自https://unix.stackexchange.com/a/8695

    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,参考exempt_groupThe exempt_group option in sudo

      

    exempt_group   该组中的用户免于密码和PATH要求。指定的组名称不应包含%前缀。默认情况下不设置此项。

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