sudo:有效uid不为0,sudo是不是安装了setuid root?
Posted
技术标签:
【中文标题】sudo:有效uid不为0,sudo是不是安装了setuid root?【英文标题】:sudo: effective uid is not 0, is sudo installed setuid root?sudo:有效uid不为0,sudo是否安装了setuid root? 【发布时间】:2013-09-07 13:22:03 【问题描述】:我正在尝试从 LXC rootfs 创建 deb 包,并在创建它之后 我想在任何计算机上安装该软件包。到目前为止,我实现了 打包和安装 deb 包,但是在安装 LXC 之后 包,我不能成为那个 lxc 的超级用户。使用时出现此错误 “sudo” 命令。
sudo:有效uid不为0,sudo是否安装了setuid root?
提前致谢。
【问题讨论】:
你能做一个ls -l `which sudo`
吗?
只需运行该命令并发布输出。
-rwxr-xr-x 1 root root 121144 Sep 4 07:11 /usr/bin/sudo
【参考方案1】:
在我奇怪地决定通过以下方式搞砸我自己的系统之后,我在 Mac OS 上遇到了同样的问题:sudo chmod -R /usr/bin
。如果这是其他人的情况,只需打开 Disk Utility,选择您的操作系统磁盘(在我的情况下为“Macintosh HD”),转到 First Aid 选项卡,然后点击 Repair Disk权限,稍等片刻,事情应该会得到解决。
【讨论】:
谢谢 - 我正面临这个确切的问题,您的回答帮助我解决了它! 太棒了。在接受的答案似乎没有做任何事情之后,这对我有用。谢谢! 这个答案应该在上面! 我也做了同样的事情,但修复磁盘权限对我不起作用...有什么想法吗?【参考方案2】:您的sudo
二进制文件没有setuid
标志,因为它猜对了。以 root 身份尝试:
chmod u+s /usr/bin/sudo
OSX 用户:
致所有从搜索引擎登陆这里的人:这不是修复您破坏的 OSX 系统的方法。问题是面向 Linux 的 - hint, lxc tag - 这就是这个答案的目的。 Gustavo Matias 提供的答案可能会有所帮助:-)
【讨论】:
我收到消息:chmod:更改“/usr/bin/sudo”的权限:不允许操作 这个解决方案对我不起作用:'chmod:更改'/usr/bin/sudo'的权限:不允许操作'我也得到'-rwxrwxrwx 1 root root 121144 Feb 28 2013 /usr/bin/sudo' 当我运行 ls -lwhich sudo
@holyredbeard 再次检查这个问题的标签。这不是特定于 OSX 的问题,因此我的回答中没有特定于 OSX 的内容:-)
我不小心弄乱了 /usr/bin 权限,你救了我重新安装我的 CentOS 服务器。非常感谢!
@cnicutar 这是如何工作的?如果我在没有sudo
的情况下运行命令,它会告诉我我没有权限,如果我使用sudo
运行它,它会给我同样的“有效 uid 不是 0...”错误(我是使用亚马逊 Linux)。【参考方案3】:
@cnicutar 提供了答案
在 Ubuntu 14.04 主机上,以下工作正常
Exit the container
Stop the container
现在你在主机上,设置标志
sudo chmod u+s /var/lib/lxc/<container_name>/rootfs/usr/bin/sudo
检查标志
sudo ls -l /var/lib/lxc/<container_name>/rootfs/usr/bin/sudo
-rwsr-xr-x 1 root root ... ... var/lib/lxc/<container_name>/rootfs/usr/bin/sudo
启动你的容器并进入控制台 你应该能够执行
sudo apt-get install <package>
【讨论】:
【参考方案4】:这个错误也可能是由于用户使用了jailed ssh shell 造成的。如果是这种情况,请尝试取消限制 shell 会话。
【讨论】:
【参考方案5】:我今天遇到了这个问题,我通过用root运行以下命令解决了这个问题
chmod u+s /usr/bin/sudo
希望对你有帮助!
【讨论】:
这对我没有帮助以上是关于sudo:有效uid不为0,sudo是不是安装了setuid root?的主要内容,如果未能解决你的问题,请参考以下文章
sudo: effective uid is not 0, is sudo installed setuid root
java有没有办法找到真正的UID而不是linux中的有效UID?
如何在不为 RVM 用户授予 sudo 访问权限的情况下安装 RVM 系统要求
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set 的解决办法