首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用Linux NIS (网络信息服务)管理用户时,如何使用当前主机用户运行docker

当使用Linux NIS (网络信息服务)管理用户时,如何使用当前主机用户运行docker
EN

Stack Overflow用户
提问于 2021-01-14 20:19:41
回答 1查看 295关注 0票数 1

我想用我的主机账号运行docker,

通常我会这样做:

代码语言:javascript
复制
#!/bin/bash
user_home="${HOME:-"$(eval echo "~$(whoami)")"}"

docker run -it --rm \
  --env "USER=$(whoami)" \
  -u $(id -u ${USER}):$(id -g ${USER}) \
  --volume "${user_home}:${user_home}":ro \
  --volume /etc/passwd:/etc/passwd:ro \
  --volume /etc/group:/etc/group:ro \
  "ubuntu" /bin/bash

但是现在,我需要在一台使用NIS (网络信息服务)管理用户的PC上执行此操作。我的用户不在/etc/passwd中

最好的方向是什么?是以某种方式将用户从NIS导出到某个文件并将其映射到/etc/passwd吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 21:59:21

由于您是从脚本运行Docker,因此可以添加一些自动化功能,将必要的信息提取到临时文件中。如下所示:

代码语言:javascript
复制
getent passwd $(id -un) > /tmp/passwd.docker
getent group  $(id -gn) > /tmp/group.docker

getent命令在系统上配置的任何目录源中查找信息,因此它将从NIS中提取信息。

然后,您可以将/tmp/passwd.docker/tmp/group.docker挂载到容器中。

或者,您可以只生成所需的信息,因为您真正关心的是uid和用户名:

代码语言:javascript
复制
cat > /tmp/docker.passwd <<EOF
$LOGNAME:x:$(id -u):$(id -g):fake entry:$HOME:/bin/bash
EOF

等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65718839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档