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 -lstat 输出没有改变一位。我猜是一些 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?的主要内容,如果未能解决你的问题,请参考以下文章

centos root权限执行命令和sudo有没有区别

java有没有办法找到真正的UID而不是linux中的有效UID?

CentOS7--su和sudo

linux su和sudo命令的区别

linux用户管理

第2章 系统用户/组管理 su和sudo