从 node.js 脚本禁用 sudo/root 权限

disable sudo/root privilege from node.js script

我需要在我的 node.js 应用程序中对端口 80 上的 运行 服务器或 运行 一些其他启动管理内容的 sudo 特权。 但是当我这样做时,我不再想要这个特权,因为那时我将 运行 来自 node_modules.

的一些外部库

那么,如何从 node.js 脚本中禁用我的管理权限?

您需要使用:

process.setgid('somegroup');
process.setuid('someuser');

查看文档:

有关详细信息,请参阅本文:

其他选项

另一种无需 运行 以 root 身份绑定到低端口的方法是,如果您的系统支持,则可以绑定到低端口 - 使用例如CAP_NET_BIND_SERVICE 在 Linux 上有类似的东西:

sudo setcap 'cap_net_bind_service=+ep' /path/to/your/program

这样您就不必 运行 以 root 用户身份,以后也不必更改为其他用户。