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

时间:2013-09-04 06:38:17

标签: sudo deb uid lxc

我正在尝试从LXC rootfs创建deb包,并在创建它之后 我想在任何计算机上安装该软件包。到目前为止,我实现了 包装和安装deb包,但安装LXC后 包,我不能成为那个lxc的超级用户。我使用时出现此错误 " sudo" 命令。

  

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

提前谢谢。

5 个答案:

答案 0 :(得分:64)

我奇怪地决定通过执行以下操作来解决我自己的系统问题,我在Mac OS上遇到了同样的问题:sudo chmod -R /usr/bin。如果这是其他人的情况,只需打开磁盘工具,选择您的操作系统磁盘(在我的情况下为“Macintosh HD”),转到急救标签,然后点击修复磁盘权限,等待一些事情应该得到修复。

答案 1 :(得分:15)

您的sudo二进制文件没有setuid标记,因为它正确猜到了。以root身份,尝试:

chmod u+s /usr/bin/sudo

OSX用户:

对于从搜索引擎登陆的所有人:这不是解决您破坏的OSX系统的方法。问题是面向Linux - 提示,lxc标记 - 这就是这个答案的用途。 Gustavo Matias提供的答案可能有所帮助: - )

答案 2 :(得分:2)

@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>

答案 3 :(得分:1)

此错误也可能是由于为用户使用jailed ssh shell引起的。如果是这种情况,请尝试取消限制shell会话。

答案 4 :(得分:0)

我今天遇到了这个问题,我通过以root运行以下命令解决了这个问题

chmod u+s /usr/bin/sudo

我希望它会对你有所帮助!