我用同样的标题发现了另一个问题,但是,我想我的情况有点不同。
为了设置新项目,我需要安装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
也是双倍