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

时间:2017-03-08 12:03:00

标签: node.js linux root sudo privileges

我需要在我的node.js应用程序中使用sudo权限在端口80上运行服务器,或运行其他一些启动管理的东西。 但是当我这样做时,我不再需要这个权限,因为那时我将从node_modules运行一些外部库。

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

1 个答案:

答案 0 :(得分:1)

您需要使用:

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

参见文档:

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

其他选项

绑定到低端口而不以root身份运行的另一种方法是提供绑定到低端口的功能(如果系统支持它) - 使用例如Linux上的CAP_NET_BIND_SERVICE类似于:

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

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