运行nodejs非root

时间:2016-02-24 20:09:03

标签: linux node.js ubuntu

我在/etc/rc.local添加了一行,以便在重启后启动节点进程:

/usr/local/bin/node /home/ubuntu/app/index.js &

问题是该过程以root运行。

如何指定非root用户来运行节点进程?

3 个答案:

答案 0 :(得分:1)

告诉系统以与root不同的用户身份运行您的流程将是一个更适合Ubuntu论坛或Unix SE网站的问题。

至于如何从Node.js流程中将用户更改为非特权用户,您可以分别使用process.setuid()process.setgid()来更改用户和组ID。

请注意,将这些更改为非root值后,您将无法返回提升的root权限。

答案 1 :(得分:1)

我会尝试这个,但我还没有在你的背景下测试它:

exec sudo -u nodejs /usr/local/bin/node /home/ubuntu/app/index.js &

答案 2 :(得分:1)

您可以使用此行与其他用户一起运行:

su -c "/usr/local/bin/node /home/ubuntu/app/index.js" & -s /bin/sh <username>