No se puede acceder al programa instalado para un usuario desde otro usuario, incluso si se proporciona la ruta completa

No se puede acceder al programa instalado para un usuario desde otro usuario, incluso si se proporciona la ruta completa

Tengo todos los paquetes npm instalados para un usuario en particular (es decir), no root (/home/otheruser/*)

Estoy usando monit para ver si debo verificar que el programa se esté ejecutando. En este caso es pm2, que está en

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

No puedo usar pm2 incluso cuando intenté usar la ruta completa de otros usuarios en la terminal, incluso con el usuario root. No dio ningún resultado o no pasó nada allí como se muestra a continuación.

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

cada vez que ejecuto módulos de nodo con diferentes usuarios 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

Y obtengo lo siguiente en el 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

Cómo hacer que eso funcione con otros usuarios

Respuesta1

nvmNo es un programa real. Es una función bash que se carga en el .profile, .bashrc o ... del usuario, por lo que sudo no la recoge automáticamente de $PATH como la mayoría de los otros programas.

Puedes crear un enlace simbólico y luego intentar acceder a él.

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

Respuesta2

Debe agregar lo siguiente en la variable de entorno del usuario registrado (raíz) en el que está intentando ejecutar el comando pm2 y luego 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 /papelera"

información relacionada