У вас осталась еще одна группа:docker
. Это означает, что у вас все еще есть контроль над демоном docker. Этот демон может запускать контейнер с корневой файловой системой хоста , смонтированной , а затем контейнер может редактировать файлы(vi
доступен в busybox)или проще :может chroot
на хосте файловая система.
Скачать минимальный busybox
образ:
myuser@myhost:~$ docker pull busybox
Using default tag: latest
latest: Pulling from library/busybox
b71f96345d44: Pull complete
Digest: sha256:930490f97e5b921535c153e0e7110d251134cc4b72bbb8133c6a5065cc68580d
Status: Downloaded newer image for busybox:latest
docker.io/library/busybox:latest
Запуск контейнера с этим изображением в интерактивном режиме и в привилегированном режиме (на случай, если AppArmor заблокирует команду chroot
без него позже):
$ docker run -it --mount type=bind,source=/,target=/host --privileged busybox
Продолжить с интерактивными командами из контейнера. Вы можете просто перейти в точку монтирования, чтобы «войти» в корневую файловую систему и получить все команды Ubuntu :
./ # chroot /host
Используйте adduser
, который представляет собой более простую оболочку дляuseradd
:
root@74fc1b7903e5:/# adduser myuser sudo
Adding user `myuser' to group `sudo'...
Adding user myuser to group sudo
Done.
root@74fc1b7903e5:/# exit
exit
/ # exit
Либо выйдите из системы и снова войдите в систему, либо смените группу вручную:
myuser@myhost$ sg sudo
И рут-доступ восстановлен:
myuser@myhost$ sudo -i
[sudo] password for myuser:
root@myhost#
Вывод :Будьте очень осмотрительны, разрешая удаленный доступ к Docker (через порт 2375/TCP ). Это означает root-доступ по умолчанию.