我刚刚被一些互联网文章所证实,使用setuid/setgid切换到较低特权用户可能很重要。由于我正在开发一个网络应用程序,我决定去www-data
。Nodejs:使用setuid/setgid后监听端口80
因此,我使用userid
NPM模块计算出www-data的用户和组ID,然后更改为它。然而,当我做到这一点 - 这不要紧,完全 - 我得到以下(在本例中,安全处理程序的代码非常非常底执行):
2014-09-04T23:07:05.812Z - info: BIRD3 Security -> Changed to www-data:www-data (33:33)
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:904:11)
at Server._listen2 (net.js:1023:19)
at listen (net.js:1064:10)
at net.js:1146:9
at dns.js:72:18
at process._tickCallback (node.js:419:13)
at Function.Module.runMain (module.js:499:11)
at startup (node.js:119:16)
at node.js:906:3
正如你可以看到,只要我改变了我的权限级别,它也会降低80端口的可访问性。
有没有一种方法,我怎么能实现安全,但继续使用80端口,而无需使用something like this?
你可以显示你用来侦听和设置gid/uid的代码吗? – mscdex 2014-09-05 03:09:18
@mscdex:Entrence script:http://git.ingwie.me/ingwie/bird3/blob/master/app.js security_handler.js:http://git.ingwie.me/ingwie/bird3/blob/master /lib/security_handler.js 我现在注释了setuid/setgid调用。 – 2014-09-05 18:05:17