![](/img/trans.png)
[英]How to check if node.js script runs with admin privileges on linux?
[英]Are there downsides to installing node.js with root privileges?
我正在使用以下代码来安装节点:
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包相同。
这很好,就像使用包管理器以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),因为它们将由你编译(创建)它们的用户帐户拥有。
如果您已经验证了您下载的tarball是合法的,那么以root身份安装应该没有问题,即sudo make install
。 尽管如此,构建应始终以非root身份完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.