GNU/Linux >> Tutoriales Linux >  >> Linux

Permitir que las aplicaciones node.js se ejecuten en el puerto 80

Solución 1:

para evitar este error, puede resolver el ejecutable sin enlace simbólico con which node , como ejemplo completo:

sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

el comando "cuál" muestra la ruta completa de los comandos de shell.

Solución 2:

Lo averigué. Resulta que instalé node, creé un enlace simbólico en /usr/bin/node que apuntaba a otro enlace simbólico en /etc/alternatives/node que apuntaba a otro enlace simbólico en /usr/bin/nodejs.

Ejecutar el comando contra /usr/bin/nodejs funcionó.

Solución 3:

FWIW, otra opción es usar authbind. Authbind usa un mecanismo ligeramente diferente para lograr fines similares a CAP_NET_BIND_SERVICE. Es decir. permite que las aplicaciones sin privilegios usen puertos privilegiados.

Instalar desde apt:

sudo apt-get update && sudo apt-get install authbind

Suponiendo que el app.js deseado se está ejecutando bajo un usuario "usuario" sin privilegios y desea enlazar al puerto 80:

sudo touch /etc/authbind/byport/80
sudo chown user:user /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80

Luego ejecute su aplicación de esta manera:

authbind node app.js

Si, en cambio, desea usar algo como "para siempre" (esencialmente demoniza las aplicaciones de nodo), entonces este es el camino:

authbind --deep forever app.js

Linux
  1. Ejecute contenedores en Linux sin sudo en Podman

  2. Usando sudo para delegar permisos en Linux

  3. Cómo abrir los puertos 80 y 443 en FirewallD

  4. Linux:¿ejecutar aplicaciones de Mac Os X en Linux?

  5. cómo pasar la variable de entorno a sudo su

Ejecute aplicaciones de Windows en Linux con Crossover 15

Cómo ejecutar comandos Sudo sin contraseña

Gestión de aplicaciones de un nodo mediante PM2

¿Hay alguna vez una buena razón para ejecutar Sudo Su?

Cómo ejecutar un alias con Sudo en Linux

Cómo ejecutar comandos sudo sin contraseña