O programa instalado para um usuário não pode ser acessado por outro usuário, mesmo que o caminho completo seja fornecido

O programa instalado para um usuário não pode ser acessado por outro usuário, mesmo que o caminho completo seja fornecido

Eu tenho todos os pacotes npm instalados para um usuário específico (ou seja) não root (/home/otheruser/*)

Estou usando o monit para verificar se devo verificar se o programa está em execução. Neste caso é pm2, que está em

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

Não consigo usar o pm2 mesmo quando tentei usar o caminho completo de outros usuários no terminal, mesmo com o usuário root. Não deu nenhum resultado ou nada aconteceu como abaixo.

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

sempre que executo módulos de nó com usuários diferentes, como

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

E eu recebo o abaixo no 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

Como fazer isso funcionar com outros usuários

Responder1

nvmnão é um programa real. É uma função bash que é carregada no .profile, .bashrc ou ... do usuário, então o sudo não a seleciona automaticamente no $PATH como a maioria dos outros programas.

Você pode criar um link simbólico e tentar acessá-lo

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

Responder2

Você deve adicionar o seguinte na variável de ambiente do usuário logado (root) no qual você está tentando executar o comando pm2 e então funcionará

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"

informação relacionada