gpt4 book ai didi

linux - 如何限制对 Docker 容器中路径的访问?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:35 26 4
gpt4 key购买 nike

Here我写了一个 Dockerfile 来测试用户访问。另一个文件 (run.sh) 在这个 link

到目前为止,我已经这样做了:

  1. 从 Ubuntu 12.04.05 开始,使用 sudo 和 ssh 服务器创建一个新容器。
  2. 将默认 root 密码更改为“root”
  3. 创建一个测试目录 '/app' 和一个名为 'lalal' 的文件,其中包含一个示例字符串。
  4. 创建用户 'devops' 并为其添加 sudo 功能以启动 ssh 服务。
  5. 配置 run.sh 脚本以在启动时启动 ssh 服务,并将默认用户更改为 'devops'。

使用 docker 操作:

  • 构建:docker build testuser/testuser:v1 -f ./Dockerfile .
  • 运行:docker run -d -P --name testuser -p 22:22 testuser/testuser:v1
  • 查看日志:docker logs testuser
  • 运行 bash:docker exec -i -t bash
  • 以 root 用户运行 bash:docker exec -i -t -user=root bash

直到使用 devops 用户运行 bash 时,由于对/app 目录的限制,没有问题,但是当我使用 root 用户运行 bash 时,我可以做任何我想做的事,而 devops 用户是无用的。我该如何纠正这个安全漏洞?

最佳答案

issue 8664 中所述:

If someone has access to Docker, they have access to your entire system, can join namepsaces, etc.
Disabling docker exec would not enhance security at all.

如果可以运行 docker exec,则可以在任何正在运行的容器中以 root 身份运行它。这不是错误或安全风险。这是一个特点。

来自 issue 8798 :

I think exec is mostly useful for debugging a container and therefore it is necessary to be able to exec as root.

OP Agustín Alba Chicarin the comments 确认 ( issue 18640 )
(Brian Goff -- cpuguy83 的回答)

No.
By convention, any user with access to docker has full root access to the host, which makes root access to the container moot.

Docker now has an authorization framework in master, which can be used to limit this sort of access. It will be available in Docker 1.10.

关于linux - 如何限制对 Docker 容器中路径的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34270734/

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