我正在尝试从 LXC rootfs 创建 deb 包,在创建它之后,我想在任何计算机上安装该包。至此,我实现了打包和安装 deb 包,但是在安装 LXC 包后,我无法成为该 lxc 的超级用户。使用 “sudo”命令时出现此错误。
sudo:有效uid不为0,sudo是否安装了setuid root?
提前致谢。
在奇怪地决定通过执行以下操作来搞砸我自己的系统之后,我在 Mac OS 上遇到了同样的问题sudo chmod -R /usr/bin
:如果这是其他人的情况,只需打开Disk Utility,选择您的 OS 磁盘(在我的情况下为“Macintosh HD”),转到First Aid选项卡,然后点击Repair Disk Permissions,稍等片刻,事情应该会得到解决。
正如它正确猜测的那样,您的sudo
二进制文件没有标志。setuid
以 root 身份尝试:
chmod u+s /usr/bin/sudo
对于从搜索引擎登陆这里的每个人:这不是修复您破坏的 OSX 系统的方法。问题是面向 Linux 的——提示、lxc 标签——这就是这个答案的目的。Gustavo Matias 提供的答案可能会有所帮助:-)
@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>
此错误也可能是由于用户使用了被监禁的 ssh shell 造成的。如果是这种情况,请尝试取消限制 shell 会话。
我今天遇到了这个问题,我通过使用 root 运行以下命令解决了这个问题
chmod u+s /usr/bin/sudo
我希望它会帮助你!