0

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-rsaauthorized_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_userdocker组并尝试执行,some_new_command我也会收到错误:nsenter: cannot open /proc/<PID>/ns/ipc: Permission denied

PPS 如果我使用 sudosome_new_command执行得很好。

4

0 回答 0