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

Swa*_*dhi 9 linux sudo centos node.js npm

我找到了另一个标题相同的问题,但是,我想我的情况有点不同.

在尝试设置新项目时,我需要安装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?
Run Code Online (Sandbox Code Playgroud)

据我所知,我对npm的设置本来应该更好,而且是root用户,但我是Linux新手.

任何帮助,将不胜感激.:)

更多信息 -

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

小智 10

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

解决这个问题:

1)首先确保root是此目录的所有者/usr/bin:

chown root:root /usr/bin
Run Code Online (Sandbox Code Playgroud)

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

chmod u+s /usr/bin/sudo
Run Code Online (Sandbox Code Playgroud)

  • 我正面临这个问题:chown:更改'/ usr/bin /'的所有权:不允许操作 (7认同)

小智 5

如果仍然有人在使用sudo遇到问题,我无法通过检查WHM中帐户的外壳访问来解决。我收到了相同的错误消息,因为该帐户具有“入狱的Shell”限制。我将其设置为普通外壳,错误消失了。