26

我正在尝试从 LXC rootfs 创建 deb 包,在创建它之后,我想在任何计算机上安装该包。至此,我实现了打包和安装 deb 包,但是在安装 LXC 包后,我无法成为该 lxc 的超级用户。使用 “sudo”命令时出现此错误。

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

提前致谢。

4

5 回答 5

64

在奇怪地决定通过执行以下操作来搞砸我自己的系统之后,我在 Mac OS 上遇到了同样的问题sudo chmod -R /usr/bin:如果这是其他人的情况,只需打开Disk Utility,选择您的 OS 磁盘(在我的情况下为“Macintosh HD”),转到First Aid选项卡,然后点击Repair Disk Permissions,稍等片刻,事情应该会得到解决。

于 2014-01-04T03:53:34.653 回答
15

正如它正确猜测的那样,您的sudo二进制文件没有标志。setuid以 root 身份尝试:

chmod u+s /usr/bin/sudo

OSX 用户:

对于从搜索引擎登陆这里的每个人:这不是修复您破坏的 OSX 系统的方法。问题是面向 Linux 的——提示、lxc 标签——这就是这个答案的目的。Gustavo Matias 提供的答案可能会有所帮助:-)

于 2013-09-04T09:01:46.030 回答
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>
于 2015-02-03T03:24:36.037 回答
1

此错误也可能是由于用户使用了被监禁的 ssh shell 造成的。如果是这种情况,请尝试取消限制 shell 会话。

于 2017-05-02T17:11:19.557 回答
0

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

chmod u+s /usr/bin/sudo

我希望它会帮助你!

于 2016-06-19T07:49:32.700 回答