lover 2024-08-27 15:36 采纳率: 100%
浏览 32
已结题

kingbase容器启动失败,sudo:/bin/sudo must be owned by uid 0 and have the setuid bit set

启动kingbase容器失败 查看容器日志如下

export KINGBASE_USER=kingbase
chown:changing ownership of '/hom/kingbase/userdata/lib/docker/overlay2/96d8b12f85c858eb3f8602c6a592af45de04f7546b867967aaf74808c736489d/merged/proc/fs/nfsd':Operation not permitted
……
……
sudo:/etc/sudo.conf is owned by uid 1000,should be 0
sudo:/bin/sudo must be owned by uid 0 and have the setuid bit set
sudo:/etc/sudo.conf is owned by uid 1000,should be 0
sudo:/bin/sudo must be owned by uid 0 and have the setuid bit set
sudo:/etc/sudo.conf is owned by uid 1000,should be 0
sudo:/bin/sudo must be owned by uid 0 and have the setuid bit set

操作环境、软件版本等信息

操作系统Centos 7
docker版本:18.09.6
kingbase镜像版本:kingbase_v008r006c008b0020_single_x86:v1

尝试过的解决方法

1、查看了sudo相关文件权限正常的

[root@mysqldb ~]# ll /etc/sudo.conf
-rw-r-----. 1 root root 1786 Oct 30  2018 /etc/sudo.conf
[root@mysqldb ~]# ll /bin/sudo
---s--x--x. 1 root root 147392 Oct 31  2018 /bin/sudo

2、删除容器后重新执行命令创建容器可以启动
docker run -tid --privileged --restart=always -p 4321:54321 -v /home/docker:/home/kingbase/userdata -e NEED_START=yes -e DB_USER=kingbase -e DB_PASSWORD=password -e DB_MODE=oracle --name kingbase_V8R6 kingbase_v008r006c008b0020_single_x86:v1 /usr/sbin/init

我想要达到的结果

使用命令重启docker服务后
systemctl restart docker
重启容器能够成功
docker restart 96d8b12f85c858eb3f

  • 写回答

21条回答 默认 最新

  • 阿里嘎多学长 2024-08-27 15:46
    关注

    AIGC生成:


    <title>解决Kingbase容器启动失败:sudo权限问题</title>

    根据您提供的信息,Kingbase容器启动失败的原因是sudo权限问题。错误信息提示/bin/sudo must be owned by uid 0 and have the setuid bit set,这意味着sudo命令的所有权不正确或setuid位没有设置。

    解决方法:

    1. 检查sudo命令的所有权和权限:
    ls -l /bin/sudo
    

    输出结果应该类似于:

    -rwsr-xr-x 1 root root 155008 Feb 26  2022 /bin/sudo
    

    其中,-rwsr-xr-x表示sudo命令的权限,root root表示所有权为root用户和root组。

    1. 如果sudo命令的所有权或权限不正确,可以使用以下命令修复:
    sudo chown root:root /bin/sudo
    sudo chmod 4755 /bin/sudo
    

    这将将sudo命令的所有权设置为root用户和root组,并设置setuid位。

    1. 重新启动Kingbase容器:
    docker restart kingbase
    

    这应该可以解决Kingbase容器启动失败的问题。

    示例输入:

    docker run -d --name kingbase kingbase/kingbase
    

    示例输出:

    Kingbase容器启动成功
    

    流程图:

    graph LR
        A[Kingbase容器启动失败] -->|sudo权限问题|> B[检查sudo命令权限]
        B -->|权限不正确|> C[修复sudo命令权限]
        C -->|重新启动Kingbase容器|> D[Kingbase容器启动成功]
    

    注意:在实际操作中,请确保您拥有足够的权限来执行这些命令,并且请小心地执行这些命令,以免造成系统损害。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(20条)

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 已采纳回答 8月30日
  • 赞助了问题酬金15元 8月27日
  • 创建了问题 8月27日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?