Предоставление доступа оболочки к определенному контейнеру Docker пользователю, который не добавлен в группу Docker.
Моя задача - предоставить доступ к определенному 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) Настроил целевой ключ SSH, добавив command="some_new_command"
до 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: nsenter from util-linux 2.27.1
PS Даже если я добавлю <target_user
в docker
группа и попытаться выполнить some_new_command
Я получил ошибку: nsenter: cannot open /proc/<PID>/ns/ipc: Permission denied
PPS Если я использую sudo some_new_command
исполняются нормально.