docker - 为什么我仍然可以使用 --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 创建的子系统中有特定用户?
解决方案
推荐阅读
- javascript - 无法从 firebase firestore get().then() 响应调用 firebase 云功能
- java - 我正在尝试使用 servlet 做简单的 hello world 程序。但我收到错误 HTTP 状态 405 - 方法不允许
- java - 如何将 HTTP API 公开为 Flink 源
- typescript - 打字稿 - 每月第 31 天的日期返回第 30 天的 ISOString
- r - Devtolls 文档功能不会创建 NAMESPACE 文件
- reactjs - React 组件加载不停
- redux - Redux 工具包 - 更新对象中的键值
- r - 错误:不能对不存在的列进行子集化。x 列“Q2”、“Q2”、“Q2”、“Q2”、“Q2”等不存在。在 R
- math - 在lua中反转指数
- sql - 子查询没有按我想要的方式工作