我发现了另一个标题相同的问题,但是,我想我的情况有点不同。
在尝试设置新项目时,我需要安装nodejs。我意识到它只在与sudo一起使用时才有用。例如。 sudo npm
此外,我访问了链接https://docs.npmjs.com/getting-started/fixing-npm-permissions并执行了
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
更改默认目录权限。 现在因为我不得不在这里sudo npm,我跑了
sudo chown -R $(whoami) $(sudo npm config get prefix)/{lib/node_modules,bin,share}
发布这个,每当我尝试使用sudo时,我都会收到此错误 -
sudo: effective uid is not 0, is sudo installed setuid root?
据我所知,我对npm的设置本来应该更好,而且是root用户,但我是Linux新手。
任何帮助将不胜感激。 :)
更多信息 -
ls -l $(which sudo)
给出=> ---s--x--x. 1 dev root 123832 Aug 13 2015 /usr/bin/sudo
答案 0 :(得分:7)
问题是您可能更改了目录/usr/bin
的权限。
解决这个问题:
1)首先确保 root 是此目录的所有者/usr/bin
:
chown root:root /usr/bin
2)并更改此目录的权限:
chmod u+s /usr/bin/sudo
答案 1 :(得分:5)
如果有人仍然遇到sudo问题,我可以通过检查WHM中帐户的shell访问权来解决它。我收到了同样的错误,因为该帐户有Jailed Shell限制。我把它设置为普通shell,错误消失了。
答案 2 :(得分:1)
问题: sudo:有效的uid不是0,sudo是否安装了setuid root?
注意的: ---秒 - × - ×。 1 dev root 123832 Aug 13 2015 / usr / bin / sudo
用户和组应该是root,而sudo文件应该是setuid
应该是 ---秒 - × - ×。 1 root root 123832 Aug 13 2015 / usr / bin / sudo
并且还加倍