How to run node.js as non-root user?

后端 未结 3 1409
天命终不由人
天命终不由人 2021-02-02 14:15

I\'m running a node.js server, that will serve requests on port 80 amongst others. Clearly this requires the application running as root (on Linux).

Looking at this post

3条回答
  •  伪装坚强ぢ
    2021-02-02 14:57

    I love the simplicity of this workaround:

    sudo setcap 'cap_net_bind_service=+ep' `which node`
    

    It also works for programs other than nodejs btw.

    Basically as 2nd parameter you type the path to the program executable (like /usr/bin/nodejs on Ubuntu), in the above case which node should provide it dynamically, thus making this work independently from Linux distro.

    Beware though that when you upgrade nodejs or the executable gets overwritten for some other reason you would have to execute that same command again.

    Sources:

    • How to: Allow Node to bind to port 80 without sudo,
    • Is there a way for non-root processes to bind to "privileged" ports on Linux?

提交回复
热议问题