CentOS报错-sudo:有效uid不是0,sudo是不是安装setuid root?
Posted
技术标签:
【中文标题】CentOS报错-sudo:有效uid不是0,sudo是不是安装setuid root?【英文标题】:CentOS error - sudo: effective uid is not 0, is sudo installed setuid root?CentOS报错-sudo:有效uid不是0,sudo是否安装setuid root? 【发布时间】:2016-09-12 01:04:24 【问题描述】:我发现另一个标题相同的问题,但是,我想我的情况有点不同。
在尝试设置新项目时,我需要安装 nodejs。我意识到它仅在与 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
【问题讨论】:
ls -l $(which sudo)
告诉你什么?
---s--x--x. 1 dev root 123832 Aug 13 2015 /usr/bin/sudo
我看到 bin 中的所有文件现在都有 dev 了。 ://
你能好好想想,并记住你做了什么将/usr/bin
中所有文件的所有者从root
更改为dev
吗?
可能 - sudo chown -R $(whoami) $(sudo npm config get prefix)/lib/node_modules,bin,share
是的。所以你没有看到它在哪里说“警告:如果显示的路径只是 /usr,请切换到选项 2,否则你会弄乱你的权限。”在您链接的页面上?
【参考方案1】:
问题是您可能更改了目录/usr/bin
的权限。
解决这个问题:
1) 首先确定 root 是该目录/usr/bin
的所有者:
chown root:root /usr/bin
2) 并更改此目录的权限:
chmod u+s /usr/bin/sudo
【讨论】:
我正面临这个问题:chown:更改“/usr/bin/”的所有权:不允许操作 @Baruch 要让您的回答生效,用户必须知道 root 密码,即在执行su -
时提示的密码,否则他无法执行这些命令,因为无法使用 sudo。
我应该提一下,这是值得运行的 even if ls -l /usr/bin/sudo
显示正确的信息。我让ls -l
显示了预期的内容;我什至做了stat
以确保 UID 和 GID 为 0;但是,无论如何运行上述命令(在另一个系统上安装目录之后)最终解决了问题。即使ls -l
和stat
输出没有改变一位。我猜是一些 unix 错误?【参考方案2】:
如果有人仍然遇到 sudo 问题,我无法通过检查 WHM 中帐户的 shell 访问来解决它。我收到了同样的错误,因为该帐户有 Jailed Shell 限制。我将其设置为普通外壳,错误消失了。
【讨论】:
【参考方案3】:问题: sudo:有效uid不为0,sudo是否安装了setuid root?
注意到: ---s--x--x。 1 开发根 123832 2015 年 8 月 13 日 /usr/bin/sudo
用户和组应该是 root 并且 sudo 文件应该有 setuid
应该是 ---s--x--x。 1 根 123832 2015 年 8 月 13 日 /usr/bin/sudo
也加倍
【讨论】:
以上是关于CentOS报错-sudo:有效uid不是0,sudo是不是安装setuid root?的主要内容,如果未能解决你的问题,请参考以下文章