允许 node.js 应用程序在端口 80 上运行

Thi*_*its 11 linux ubuntu node.js

我正在按照一个演练指导您在 ubuntu 机器上设置节点。我正在配置系统以允许节点在端口 80 上运行。它(以及我看过的其他一些指南)建议运行以下命令:

sudo setcap cap_net_bind_service=+ep /usr/local/bin/node
Run Code Online (Sandbox Code Playgroud)

这将返回以下错误:

Failed to set capabilities on file `/usr/local/bin/node' (Invalid argument)
The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
Run Code Online (Sandbox Code Playgroud)

知道什么可能导致此错误吗?

小智 13

为了避免此错误,您可以使用 解析非符号链接可执行文件which node,作为完整示例:

sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``
Run Code Online (Sandbox Code Playgroud)

“which”命令显示shell命令的完整路径。


Thi*_*its 5

弄清楚了。事实证明,我安装了节点,在 /usr/bin/node 中创建了一个符号链接,该链接指向 /etc/alternatives/node 中的另一个符号链接,该链接指向 /usr/bin/nodejs 中的另一个符号链接。

针对 /usr/bin/nodejs 运行命令有效。