CentOS错误 - sudo:有效的uid不是0,sudo是否安装了setuid root?

时间:2016-05-16 09:23:55

标签: linux node.js npm centos sudo

我发现了另一个标题相同的问题,但是,我想我的情况有点不同。

在尝试设置新项目时,我需要安装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

3 个答案:

答案 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

并且还加倍