在 docker 容器中以 root 身份运行 wp-cli 是否危险?

信息安全 码头工人
2021-08-20 13:14:58

我正在部署一个包含 5 个容器的 Web 应用程序:

  1. 玛丽亚数据库
  2. PHP-FPM
  3. nginx
  4. 仅数据容器
  5. WP命令行界面

当我尝试运行 WP CLI 命令时,我收到以下警告:

错误:哎呀!看起来您正在以 root 身份运行它。您可能打算以您的 WordPress 安装所在的用户身份运行它。

如果您真的打算以 root 身份运行它,我们不会阻止您,但请记住,此站点上的任何代码都将完全控制您的服务器,使其非常危险。

如果您想以 root 身份继续,请再次运行此程序,添加此标志:--allow-root

我知道在正常的 WP 安装中我会遇到几个问题。但是,由于容器是隔离的,我的用例会出现一些安全问题吗?

2个回答

虽然以 root 身份运行通常不是一个好主意,但在容器中这样做通常比在主机上更危险,如果您使用 Docker => 1.10 并启用了用户命名空间,那么这个问题并不真正适用容器中的根不是主机上的根。

如果没有用户命名空间,则以 root 身份运行容器是有风险的,就好像攻击者能够突破容器隔离一样,他们将成为主机上的 root。这并不是说突破容器一定是微不足道的。Docker 使用命名空间和功能等 Linux 特性来减少正在运行的进程的权限。

使用用户命名空间,容器中的 root 用户被映射到容器外的非 root 用户,因此如果容器被破坏,用户将只是一个普通的低权限用户。不支持容器的软件可能仍然会抱怨,因为它没有意识到它没有使用“真正的”root 用户。

是的,如果你做了软件作者描述为危险的事情,你就会遇到问题。

通常,以 root 身份运行代码意味着您删除了攻击者否则需要跨越的边界,从而减少了他们的工作量,并使恢复更具挑战性。

(如果有 docker 问题,他们更有可能暴露于 root 而不是随机用户 id)