即使提供了完整路徑,也無法從其他使用者存取為一個使用者安裝的程式

即使提供了完整路徑,也無法從其他使用者存取為一個使用者安裝的程式

我為特定使用者安裝了所有 npm 套件(即)而不是 root (/home/otheruser/*)

我正在使用 monit 查看是否檢查程式正在運行。在本例中為 pm2,位於

/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2

即使我嘗試使用終端機中其他使用者的完整路徑(即使是 root 使用者),我也無法使用 pm2。它沒有給出任何輸出,或沒有發生任何事情,如下所示。

root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2 list

每當我與不同的用戶運行節點模組時,例如

root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/forever -v
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/db-migrate -v
root@server:~$ /home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2 -v

我在系統日誌中得到以下內容

node[5791]: No AX.25 port data configured
node[5791]: No AX.25 port data configured
node[5791]: No AX.25 port data configured

如何讓其他使用者發揮作用

答案1

非揮發性不是一個真正的程序。它是一個 bash 函數,會載入到使用者的 .profile、.bashrc 或...中,因此 sudo 不會像大多數其他程式一樣自動從 $PATH 中取得它。

您可以建立一個符號鏈接,然後嘗試訪問它

sudo ln -s“/home/otheruser/.nvm/versions/node/v5.2.0/bin/pm2”“/usr/local/bin”

答案2

您必須在嘗試執行 pm2 命令的登入使用者(root)的環境變數中新增以下內容,然後它才能運作

NVM_DIR =“/home/otheruser/.nvm”
NVM_BIN =“/home/otheruser/.nvm/versions/node/v15.5.1/bin”
PATH =“/home/otheruser/.nvm/versions/node/v10.15.3 /垃圾桶”

相關內容