[英]How do I add the local users to my docker container?
我想知道如何将服务器的本地用户添加到 docker 容器中。 我不需要导入他们的文件,我只需要一个用户名/密码/权限,在 docker 容器中为我的系统中的每个用户提供一个新的主目录。 例如,假设我的 docker 容器包含以下用户:
主机系统:
管理员:谁拥有 root 访问权限和 rw 访问权限
bob:普通的非 sudo 用户
joe:另一个普通的非 sudo 用户
那么Docker Container必须有用户:
管理员:谁拥有 root 访问权限和 rw 访问权限
bob:普通的非 sudo 用户
joe:另一个普通的非 sudo 用户
Docker容器和系统都运行linux,虽然系统是red hat,容器是ubuntu。
编辑:如果可能的话,我不想挂载 /etc/ 文件,因为这会创建一个双向安全漏洞,正如@caveman所指出的
您必须使用-v
挂载所有相关的 linux 文件,例如/etc/passwd
、 /etc/shadow
、 /ect/group
和/etc/sudoers
。 虽然由于安全风险我不能推荐这个,但如果有人在容器中获得 root 访问权限,他们可以在主机上添加用户或更改密码,因为他的挂载是双向的。
文件列表并不详尽,例如,您还必须确保容器中存在 shell 可执行文件。 例如,在测试时,我必须创建一个从/usr/bin/zsh
到/bin/bash
的符号链接,因为我的用户配置了 docker 映像中不存在的 zsh shell。
如果要使用这些用户与挂载的文件进行交互,还必须确保禁用用户命名空间重新映射,或者使用--userns=host
标志指定要使用与主机相同的用户命名空间。 同样,不推荐,因为它是一项安全功能,因此请谨慎使用。
注意:完成所有这些后,您可以使用su - {username}
切换到所有现有用户。 -u
选项不起作用,因为 docker 在挂载前检查/etc/passwd
文件并会给出错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.