提供对特定docker集装箱的shell访问权限,不会被添加到docker组中
我的任务是提供访问特定的docker集装箱,而无需将用户添加到docker
组。
我做了什么
1)做一个nsenter-based
脚本,必须input容器(我们称之为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)通过在authorized_keys
文件中的ssh-rsa
之前添加command="some_new_command"
调整目标ssh密钥。
但是当我在目标用户下login时
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
,所以它支持inputpid命名空间。
nsenter版本: nsenter from util-linux 2.27.1
PS即使我添加<target_user
some_new_command
docker
组,并尝试执行some_new_command
我得到一个错误: nsenter: cannot open /proc/<PID>/ns/ipc: Permission denied
PPS如果我使用sudo some_new_command
执行正常。