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

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

为了设置新项目,我需要安装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}

更改默认的目录权限。 现在因为我也必须在这里申请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设置本应该更好,但是我是Linux新手。

任何帮助,将不胜感激。 🙂

更多信息 –

ls -l $(which sudo)给出=> ---s--x--x. 1 dev root 123832 Aug 13 2015 /usr/bin/sudo ---s--x--x. 1 dev root 123832 Aug 13 2015 /usr/bin/sudo

问题是您可能已将权限更改为目录/usr/bin

要解决这个问题:

1)首先确定root是这个目录的所有者/usr/bin

 chown root:root /usr/bin 

2)并更改此目录的权限:

 chmod u+s /usr/bin/sudo 

问题:sudo:有效的uid不是0,是sudo安装的setuid root?

注意到:— s – x – x。 1 dev root 123832 2015年8月13日/ usr / bin / sudo

用户和组应该是root,sudo文件应该有setuid

应该是— s – x – x。 1 root root 123832 2015年8月13日/ usr / bin / sudo

也是双倍