即使使用sudo也无法获取权限

3
1个回答

10
echo 'prefix=/usr/local' > node/etc/npmrc

然而,即使使用sudo,我仍然会收到权限被拒绝的错误提示。
您还没有向我们展示使用sudo失败的命令。请更新您的问题并展示具体失败的命令和错误信息。
与此同时,我猜测失败的命令可能是:
sudo echo 'prefix=/usr/local' > node/etc/npmrc

这条命令会以root权限运行echo命令(这并不特别有用,因为您可以作为普通用户运行echo)。重定向由您当前的shell进程处理,并受当前用户权限的限制。

由于>是由shell处理的,因此您需要一个以root身份运行的shell来处理它:

sudo sh -c "echo 'prefix=/usr/local' > node/etc/npmrc"

“| sudo tee” 是另一种常见的方式。 - o11c

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接