从node.js脚本中禁用sudo / root权限
我需要在我的node.js应用程序中使用sudo权限在端口80上运行服务器,或者运行一些其他启动pipe理的东西。 但是,当我这样做,我不希望这个特权了,因为那么我会从node_modules运行一些外部库。
那么,我怎样才能从node.js脚本中禁用我的pipe理权限呢?
你需要使用:
process.setgid('somegroup'); process.setuid('someuser');
看文档:
- https://nodejs.org/api/process.html#process_process_setgid_id
- https://nodejs.org/api/process.html#process_process_setuid_id
看到这篇文章的更多信息:
其他选项
绑定到低端口而不以root运行的另一种方法是在系统支持的情况下提供绑定到低端口的function – 例如,在Linux上使用CAP_NET_BIND_SERVICE,如下所示:
sudo setcap 'cap_net_bind_service=+ep' /path/to/your/program
这样你就不必以root身份运行它,而且以后你不必更改为其他用户。