あるユーザー用にインストールされたプログラムは、フルパスが提供されていても他のユーザーからはアクセスできません。

あるユーザー用にインストールされたプログラムは、フルパスが提供されていても他のユーザーからはアクセスできません。

すべての npm パッケージを特定のユーザー (つまり、root ではないユーザー) (/home/otheruser/*) にインストールしました

私はmonitを使ってプログラムが実行中かどうかを確認しています。この場合、pm2は

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

ルート ユーザーであっても、ターミナルで他のユーザーからのフル パスを使用しても、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

そしてsyslogに以下の内容が出力されます

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

いいえ実際のプログラムではありません。これは、ユーザーの .profile、.bashrc などに読み込まれる bash 関数なので、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/bin"

関連情報