首页/云/Docker 容器速查/容器内 sudo 的检查与清理
本包目录(366 条)
基础命令50 条镜像与构建107 条网络与存储52 条Compose 编排55 条
资源与安全50 条
容器排障52 条

容器内 sudo 的检查与清理

容器内装 sudo 把提权面搬进了镜像:任何能执行 sudo 的应用漏洞都可能放大为容器 root;除非场景明确,基础镜像里就不该带。

Docker 容器速查云更新于 2026-10-12
检查command -v sudo / 镜像历史与包清单
影响提权链更短、审计噪声更多
修复构建期移除 sudo,改用固定非 root 用户运行

示例

示例
docker run --rm --entrypoint sh myapp:1.4 -c 'command -v sudo || echo no-sudo'
docker history --no-trunc myapp:1.4 | grep -i sudo | head -5

Dockerfile 修复示例

Dockerfile 修复示例
RUN apt-get purge -y sudo && rm -rf /var/lib/apt/lists/*
USER 10001:10001
多阶段构建的最终镜像只保留运行时依赖,这类工具在收尾阶段自然被剥离。

易错点

  • 无密码 sudo 配置叠加 SETUID 能力时风险明显放大,扫描清单里把 sudo 设为检查项
  • 按发行版清理包并验证依赖:直接删二进制而不走包管理会留下不一致状态

数据来源与参考

  • Docker 官方文档:Building best practices(docs.docker.com/develop)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌