Users

試圖通過將其他使用者添加到路徑中來執行 /root/ 中的程序

  • February 25, 2018

具體來說,我正在使用Miniconda 發行版conda的命令部分。碰巧安裝程序將文件放入./root/miniconda3/

問題是/root/miniconda3/bin在路徑中,但該命令conda只能由 root 執行,不能由其他 sudoer 執行。

我試圖設置權限777(我知道這很糟糕,因為它包含編譯器和東西,並且它在根目錄下,但這僅適用於測試環境)。

注意:我擁有 root 和 sudoer。

sudo conda除非設置了該選項,否則不一定會執行/root/.bash_profile,而是您的原始帳戶。/etc/sudoers``always_set_home

這是設計使然:它允許同一系統上的多個管理員成為 root 並且仍然保持他們的個人 shell 環境偏好。

此外,由於在以目標使用者身份執行命令之前sudo始終將環境變數重置為標準預設值,因此您作為原始使用者的設置將不會保留在.PATH``PATH``sudo

在這種情況下,您需要在使用 shell執行命令之前sudo設置命令,以便 PATH 設置生效並找到它的其他配置文件:HOME=/root``conda``/root/.bash_profile``conda

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

為此,請執行sudo -H condaorsudo -i conda而不是sudo conda.

引用自:https://unix.stackexchange.com/questions/426437