我的任务是提供对特定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"
文件中的ssh-rsa
之前添加authorized_keys
来调整目标ssh密钥。
但是当我在目标用户下登录时
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版本:nsenter from util-linux 2.27.1
P.S。即使我将<target_user
添加到docker
组并尝试执行some_new_command
,我也收到了错误:nsenter: cannot open /proc/<PID>/ns/ipc: Permission denied
P.P.S。如果我使用sudo some_new_command
正在执行罚款。