【问题标题】:Does forever module with root privilege run additional processes also with root privilege?具有root权限的forever模块是否也以root权限运行其他进程?
【发布时间】:2017-06-27 00:02:54
【问题描述】:

在设置我的 Node.js 网络服务器时,我一直在提到这个 popular answer

但是,有一条看似重要的评论,我想提出一个问题:

如果我将我的 Node.js 启动脚本添加到 /etc/rc.local,它不会在系统启动时以 root 身份执行吗?这将破坏端口 80 重定向的目的。

如果我以 root 身份运行 forever 包,是否会永远以 root 身份运行它的进程?我在 npm documentation 中找不到有关这一点的任何信息。如果在永远也是 root 的情况下,forever 确实以 root 身份运行进程,那么它确实违背了目的,并且应该相应地更新答案。

【问题讨论】:

    标签: node.js forever


    【解决方案1】:

    这里真正的问题是我怎样才能以普通用户身份在启动时启动 nodejs 脚本?,因为你真的不想想以 root 身份启动你的服务器,主要是出于安全原因。

    而且我认为您不会在 npm 文档上找到任何有趣的建议,因为这与 npm 没有太大关系。

    上述答案的作者对您引用的评论的回应非常清楚:

    如果您从 /etc/rc.local 启动 node.js 脚本,它将运行为 根。但是,安全最佳实践是永远不要将服务器作为 根

    不要以 root 身份启动 pm2。
    如果pm2启动了其他进程,除了特殊处理,也会以root启动。

    当我阅读时

    将您的 Node.js 启动脚本添加到您为端口编辑的文件中 重定向,/etc/rc.local。

    我了解制作一个在启动时启动您的 nodejs 脚本的脚本,并让该脚本作为标准/专用用户启动它。
    也许这个答案可以给你如何做的想法:https://askubuntu.com/a/20238

    总而言之,答案仍然有用且不必更新,因为此解决方案实际上非常适合普通用户访问端口(因为前 1024 个端口仅限于 linux 上的 root 用户)

    【讨论】:

    • 如果我希望满足这个条件:如果你从 /etc/rc.local 启动你的 node.js 脚本,它将以 root 身份运行。但是,安全最佳实践是永远不要以 root 身份运行服务器,那么听起来我需要找到一种方法以非 root 用户身份启动我的 Node.js 启动脚本,但让 root 用户启动命令来自文件/etc/rc.local。这是有道理的。
    • 您的问题的问题是,通过执行不应“永远”以 root 身份执行的任务开始构成安全风险。
    • @Gi1ber7 如果 root 可以在没有提升权限的情况下安全地以不同用户身份运行进程,那么该进程将没有 root 权限并且可以避免问题。
    【解决方案2】:

    他并不是建议您以 root 身份运行永久包。只是您将重定向设置为根。一旦 80 重定向到 3000(或任何端口),您就可以像任何用户一样运行 node(或永远),让您的应用程序监听端口 3000。

    您可以通过执行以下操作以其他用户身份运行命令:

    su <user name> -c '<your command>'
    

    这是将其放入带有密码的脚本的简单方法:https://coderwall.com/p/0wgrwq/run-su-with-password-command-line-argument

    另一个选项是 runuser 命令。 这是一个链接http://linuxcommand.org/man_pages/runuser1.html

    还有一个选项是使用 --user 选项作为守护程序运行,但这需要一些工作。

    【讨论】:

    • 不过,我认为风险大于收益。
    • @Gi1ber7,您希望避免以 root 身份永久运行或其他应用程序的原因是您不希望它们访问敏感资源。您可以通过以另一个用户身份运行该进程来完成此操作。我看不到风险。你能详细说明一下吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多