繁体   English   中英

如何将本地用户添加到我的 docker 容器?

[英]How do I add the local users to my docker container?

我想知道如何将服务器的本地用户添加到 docker 容器中。 我不需要导入他们的文件,我只需要一个用户名/密码/权限,在 docker 容器中为我的系统中的每个用户提供一个新的主目录。 例如,假设我的 docker 容器包含以下用户:

主机系统:
管理员:谁拥有 root 访问权限和 rw 访问权限
bob:普通的非 sudo 用户
joe:另一个普通的非 sudo 用户

那么Doc​​ker 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM