gpt4 book ai didi

docker - Docker:如何为本地用户授予root权限?

转载 作者:行者123 更新时间:2023-12-02 19:21:34 24 4
gpt4 key购买 nike

我正在像这样在Docker中运行构建:

docker run --user $(id -u):$(id -g) --rm --network=host -v `pwd`:${SRC_MOUNT_DIR} my-image:latest my-build-script.sh

我正在使用 --user设置本地用户,以避免root拥有的文件出现在我的主目录中。

现在,问题是我需要在构建脚本中使用 sudo apt install来安装其他构建中的某些依赖项,但这需要root用户。

我该如何安排?我想不可能使所有可能的用户在没有密码的情况下工作 sudo ..?

最佳答案

如果容器内的用户可以运行sudo apt install ...,那么您也可以以root用户身份运行容器中的所有内容,因为任何攻击都可以sudo ...任何攻击代码。代替:

  • 考虑是否需要在容器内添加apt install,或者是否可以在图像中执行此操作。最好在镜像中安装二进制文件并进行部署,而不是每次运行容器时都重新安装应用程序。
  • 如果您有一个在启动时需要root用户的用例,请以root用户身份启动容器,然后在完成这些root用户步骤后将其移交给用户。像gosu这样的工具正是为此而设计的。对于执行此操作的入口点的示例,我有一个带有entrypoint script的docker-base镜像,该镜像添加了gosu并使用exec运行CMD以避免/bin/sh作为pid 1(这有助于信号处理)。

  • Gosu可以在以下位置找到: https://github.com/tianon/gosu

    关于docker - Docker:如何为本地用户授予root权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59253038/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com