以没有root权限的用户(可能是Apache的www-data用户)运行docker命令

时间:2018-11-09 07:01:04

标签: apache docker

我正在开发一个简单的Flask应用程序(配置有Apache网络服务器),该应用程序提供了用于docker管理的网络界面。我的apache服务器以“ www-data”用户身份运行,并且所有API操作都使用该服务器。

但是在以下情况下,我收到“权限被拒绝”错误, 码头工人图像 docker run等 因为它不允许“ www-data”用户运行上述命令。

能否请您提供有关使用“ www-data”用户进行docker操作的建议。

我不想将“ www-data”用户添加到sudoers列表中。

仅将用户添加到docker组将是一个适当的解决方案?

或者请为我建议一个最佳实践解决方案。

谢谢 GuruPrasad

1 个答案:

答案 0 :(得分:0)

告诉Apache run your process as root会更容易,更清晰且同样危险。

请记住,如果您完全可以运行任何Docker命令,则可以轻松获得对系统上任何内容的不受限制的根级别访问。例如,如果您的工具确定确实确实希望www-data出现在主机的sudoers列表中,则它可以

docker run --rm -v /:/host busybox \
  sh -c 'echo www-data ALL = (ALL) NOPASSWD: ALL >> /host/etc/sudoers'

根据您的管理工具的用途,它可能会为可以访问Web页面的任何人提供对主机的相同的不受保护的根级访问。即使不是,您也需要非常谨慎地调用Docker(如果用户可以使用任意名称创建目录并从中运行脚本,则我正在查看的另一个SO答案可能会导致系统root用户例如)。