我正在尝试从LXC rootfs创建deb包,并在创建它之后 我想在任何计算机上安装该软件包。到目前为止,我实现了 包装和安装deb包,但安装LXC后 包,我不能成为那个lxc的超级用户。我使用时出现此错误 " sudo" 命令。
提前谢谢。sudo:有效的uid不是0,sudo是否安装了setuid root?
答案 0 :(得分:64)
我奇怪地决定通过执行以下操作来解决我自己的系统问题,我在Mac OS上遇到了同样的问题:sudo chmod -R /usr/bin
。如果这是其他人的情况,只需打开磁盘工具,选择您的操作系统磁盘(在我的情况下为“Macintosh HD”),转到急救标签,然后点击修复磁盘权限,等待一些事情应该得到修复。
答案 1 :(得分:15)
您的sudo
二进制文件没有setuid
标记,因为它正确猜到了。以root身份,尝试:
chmod u+s /usr/bin/sudo
对于从搜索引擎登陆的所有人:这不是解决您破坏的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
我希望它会对你有所帮助!