我想知道如何将服务器的本地用户添加到码头容器中。我不需要导入他们的文件,我只需要为我的系统中的每个用户提供带有新主目录的用户名/密码/特权。例如,假设我的停靠容器包含以下用户:
东道系统:
管理员:谁有根访问权和rw访问权?
鲍勃:一个普通的非sudo用户。
乔:另一个普通的非sudo用户。
然后,Docker容器必须有用户:
管理员:谁有根访问权和rw访问权?
鲍勃:一个普通的非sudo用户。
乔:另一个普通的非sudo用户。
Docker容器和系统都在运行linux,尽管系统是红帽子,容器是ubuntu。
编辑:如果可能的话,我不想挂载/etc/ file,因为这会创建一个双向安全漏洞,正如@指出的那样
发布于 2021-11-03 19:06:24
您必须使用-v挂载所有相关的linux文件,如/etc/passwd、/etc/shadow、/ect/group和/etc/sudoers。虽然由于安全风险,我不能推荐这样做,但是如果有人在容器中获得根访问,他们可以在主机上添加用户或更改密码,因为他挂载是双向工作的。
文件列表并不是详尽无遗的,例如,您还必须确保容器中存在shell精确性。例如,在测试时,我必须创建一个从/usr/bin/zsh到/bin/bash的符号链接,因为我的用户已经配置了zsh,这在docker映像中不存在。
如果要使用这些用户与已挂载的文件进行交互,还必须确保禁用用户名称空间重新映射,或者指定要使用与带有--userns=host标志的主机相同的用户名称空间。同样,由于它是一个安全特性,所以不推荐使用,所以要小心使用。
注意:一旦完成了所有这些操作,就可以使用su - {username}切换到所有现有用户。-u选项无法工作,因为docker在挂载之前检查了/etc/passwd文件,并会出现错误。
https://stackoverflow.com/questions/69829338
复制相似问题