尝试通过将其他用户添加到路径来运行 /root/ 中的程序

尝试通过将其他用户添加到路径来运行 /root/ 中的程序

具体来说,我正在使用conda命令部分迷你康达分布。碰巧安装程序将文件放入/root/miniconda3/.

问题是/root/miniconda3/bin在路径中,但该命令conda只能由 root 运行,而不能由其他 sudoer 运行。

我尝试设置权限777(我知道这很糟糕,因为它包含编译器和东西,并且它位于根目录下,但这仅适用于测试环境)。

注意:我拥有 root 和 sudoer。

答案1

sudo conda不一定会运行/root/.bash_profile,而是您原始帐户的运行,除非设置了该/etc/sudoers选项。always_set_home

这是设计使然:它允许同一系统上的多个管理员成为 root 并仍然保持他们个人的 shell 环境首选项。

此外,由于在以目标用户身份执行命令之前sudo始终将环境变量重置为标准默认值,因此您作为原始用户的设置将不会保留在.PATHPATHsudo

在这种情况下,您需要在使用 shell执行sudo命令之前设置该命令,以便 PATH 设置生效并找到其其他配置文件:HOME=/rootconda/root/.bash_profileconda

  • $HOME/.condarc文件
  • $HOME/.conda/目录
  • $HOME/.continuum/目录

为此,请运行sudo -H condasudo -i conda而不是仅运行sudo conda.

相关内容