docker
我的任务是在不将用户添加到组的情况下提供对特定 docker 容器的访问。
我做了什么
1)制作了一个nsenter-based
必须进入容器的脚本(我们称之为script1.sh
)
#!/bin/bash
PID=$(docker inspect --format {{.State.Pid}} kayako-dashboard)
nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh
2) 使该脚本全局可用sudo ln -s /full/path/to/script1.sh /usr/local/bin/some_new_command
3) 通过在文件中添加command="some_new_command"
before来调整目标 ssh 密钥。ssh-rsa
authorized_keys
但是当我以目标用户登录时
sshpass -p <user_password> ssh <target_user>@<docker_host> "some_new_command"
我有一个错误Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
出了什么问题,有什么办法可以解决吗?
我的内核版本是4.4.0
,所以它支持进入 pid 命名空间。
输入版本:nsenter from util-linux 2.27.1
PS 即使我添加<target_user
到docker
组并尝试执行,some_new_command
我也会收到错误:nsenter: cannot open /proc/<PID>/ns/ipc: Permission denied
PPS 如果我使用 sudosome_new_command
执行得很好。