Providing shell access to particular docker container to user which is not added to docker group

1.6k Views Asked by At

My task is provide access to particular docker container without adding user to docker group.

What I did

1) Made a nsenter-based script which must enter container (let's call it script1.sh)

#!/bin/bash
PID=$(docker inspect --format {{.State.Pid}} kayako-dashboard)
nsenter --target $PID --mount --uts --ipc --net --pid /bin/sh

2) Make this script globally available sudo ln -s /full/path/to/script1.sh /usr/local/bin/some_new_command

3) Adjusted target ssh key by adding command="some_new_command" before ssh-rsa in authorized_keys file.

But when I log in under target user

sshpass -p <user_password> ssh <target_user>@<docker_host> "some_new_command"

I got an error Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

What is wrong and is there any way to fix ?

My kernel version is 4.4.0, so it supports entering the pid namespace.

nsenter version: nsenter from util-linux 2.27.1

P.S. Even if I add <target_user to docker group and try to execute some_new_command I got an error: nsenter: cannot open /proc/<PID>/ns/ipc: Permission denied

P.P.S. If I use sudo some_new_command are executing fine.

0

There are 0 best solutions below