我剛剛被一些互聯網文章所證實,使用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