GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zulassen, dass node.js-Anwendungen auf Port 80 ausgeführt werden

Lösung 1:

Um diesen Fehler zu vermeiden, können Sie die ausführbare Datei ohne Symlink mit which node auflösen , als vollständiges Beispiel:

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

der "what"-Befehl zeigt den vollständigen Pfad der Shell-Befehle.

Lösung 2:

Herausgefunden. Es stellte sich jedoch heraus, dass ich node installiert und einen Sym-Link in /usr/bin/node erstellt habe, der auf einen anderen Sym-Link in /etc/alternatives/node verwies, der auf einen anderen Sym-Link in /usr/bin/nodejs zeigte.

Das Ausführen des Befehls gegen /usr/bin/nodejs hat funktioniert.

Lösung 3:

FWIW, eine andere Option ist die Verwendung von authbind. Authbind verwendet einen etwas anderen Mechanismus, um ähnliche Ziele wie CAP_NET_BIND_SERVICE zu erreichen. Dh ermöglicht nicht privilegierten Apps, privilegierte Ports zu verwenden.

Von apt installieren:

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

Angenommen, die gewünschte app.js wird unter dem nicht privilegierten Benutzer „user“ ausgeführt und Sie möchten an Port 80 binden:

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

Führen Sie dann Ihre App wie folgt aus:

authbind node app.js

Wenn Sie stattdessen etwas wie „für immer“ verwenden möchten (im Wesentlichen dämonisiert Knoten-Apps), dann ist dies der richtige Weg:

authbind --deep forever app.js

Linux
  1. Verwenden von sudo zum Delegieren von Berechtigungen in Linux

  2. Erinnern Sie sich an Anwendungen beim Abmelden von Lxde?

  3. Node.js-Konflikte:/sbin/node Vs /usr/bin/node?

  4. wie man die Umgebungsvariable an sudo su übergibt

  5. FTP mit IPTables zulassen

Führen Sie Windows-Anwendungen unter Linux mit Crossover 15 aus

So führen Sie Sudo-Befehle ohne Passwort aus

Verwalten von Knotenanwendungen mit PM2

Gibt es jemals einen guten Grund, Sudo Su auszuführen?

So führen Sie einen Alias ​​mit Sudo in Linux aus

So führen Sie sudo-Befehle ohne Passwort aus