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

我正在使用下面的代码来安装节点:

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包一样。

这很好,和使用包pipe理器以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),因为它们将由编译(创build)它们的用户帐户拥有。

如果你已经validation了你下载的tar包是合法的,那么安装时应该没有问题,比如sudo make install 。 尽pipe如此,构build应该始终作为非root用户来完成。