使用root权限安装node.js有缺点吗?

时间:2014-09-05 00:22:22

标签: linux node.js security root sudo

我正在使用以下代码安装节点:

    cd /usr/local/src/
    wget http://nodejs.org/dist/v0.10.25/node-v0.10.25.tar.gz
    tar -xvf node-v0.10.25.tar.gz
    cd node-v0.10.25
    ./configure
    make
    make install
        # node.js links to make sudo work right
    ln -s /usr/local/bin/node /usr/bin/node
    ln -s /usr/local/lib/node /usr/lib/node
    ln -s /usr/local/bin/npm /usr/bin/npm
    ln -s /usr/local/bin/node-waf /usr/bin/node-waf

该脚本需要root权限,我想知道是否会出现任何安全漏洞或类似内容的可能性。我想安装节点以便所有用户都可以使用它,但我不希望它具有任何root权限,除非用户拥有它们并明确使用它们(通过sudo)。与已安装的npm软件包相同。

2 个答案:

答案 0 :(得分:2)

没关系,就像使用包管理器以root身份安装东西时一样。

将二进制文件写入磁盘,并将root作为所有者和合理权限,以便人们无法覆盖它们。当用户执行二进制文件时,他们在他的帐户下运行,并拥有他在系统上的权限。 (除非他和sudo一起跑)

对于普通用户在没有sudo的情况下运行它时具有提升权限的二进制文件,它需要设置SUID位,这需要明确设置。 / bin / ping就是一个例子:

user@dek:/bin$ ls -l /bin/ping
-rwsr-xr-x 1 root root 44168 May  7 22:51 /bin/ping

正如Ignacio所指出的,你可以运行大多数非特权的脚本,直到'make install',但你必须事后修复二进制文件所有者(chown root:root),因为它们将由你编译的用户帐户拥有(他们。

答案 1 :(得分:1)

如果您已经确认已下载的tarball是合法的,那么以root身份安装应该没有问题,即sudo make install。建筑物应始终以非root方式完成,以防万一。