首页 > 解决方案 > 为什么我仍然可以使用 --shell "/sbin/nologin" 创建的用户进入容器?

问题描述

我正在我的 Dockerfile 中创建一个用户,如下所示:

RUN adduser \
    --disabled-password \
    --gecos "" \
    --home "/" \
    --shell "/sbin/nologin" \
    --no-create-home \
    --uid 1001 myuser

然后在运行之前CMD我会:

USER 1001

我希望这--shell "/sbin/nologin"会阻止我从这样的容器登录: docker exec -it mycontainer /bin/bash

但我以myuser.

这不是问题,但我想知道用例会--shell "/sbin/nologin"阻止什么?从这个评论来看,似乎一个(唯一的?)用例正在阻止远程登录。

奖励积分:如果docker exec -it mycontainer /bin/bash不像远程登录,它在做什么?假设 Docker 创建的子系统中有特定用户?

标签: dockersecurityauthenticationdockerfile

解决方案


推荐阅读