GNU/Linux >> Linux Esercitazione >  >> Linux

Consentire l'esecuzione delle applicazioni node.js sulla porta 80

Soluzione 1:

per evitare questo errore, puoi risolvere l'eseguibile senza collegamento simbolico con which node , come esempio completo:

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

il comando "which" mostra il percorso completo dei comandi della shell.

Soluzione 2:

Capito. Risulta tuttavia che ho installato node, creato un collegamento simbolico in /usr/bin/node che puntava a un altro collegamento simbolico in /etc/alternatives/node che puntava a un altro collegamento simbolico in /usr/bin/nodejs.

L'esecuzione del comando su /usr/bin/nodejs ha funzionato.

Soluzione 3:

FWIW, un'altra opzione è usare authbind. Authbind utilizza un meccanismo leggermente diverso per raggiungere fini simili a CAP_NET_BIND_SERVICE. Cioè. consente alle app non privilegiate di utilizzare porte privilegiate.

Installa da apt:

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

Supponendo che app.js desiderato sia in esecuzione con l'utente "utente" non privilegiato e desideri collegarti alla porta 80:

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

Quindi esegui la tua app in questo modo:

authbind node app.js

Se invece desideri utilizzare qualcosa come "per sempre" (essenzialmente demonizza le app dei nodi), allora è così:

authbind --deep forever app.js

Linux
  1. Utilizzo di sudo per delegare le autorizzazioni in Linux

  2. Come aprire le porte 80 e 443 in FirewallD

  3. Ricordi le applicazioni al logout da Lxde?

  4. Node.js Conflitti:/sbin/node Vs /usr/bin/node?

  5. Esegui il comando cd come superutente in Linux

Esegui applicazioni Windows su Linux con Crossover 15

Come eseguire comandi Sudo senza password

Gestione di un'applicazione nodo tramite PM2

C'è mai un buon motivo per correre Sudo Su?

Come eseguire un alias con Sudo in Linux

Come eseguire sudo comandi senza password