Blog

Jak z dostępem do polecenia docker dodać sobie sudo?

Przypuśćmy hipotetyczną sytuację, w której admini dają ci dostep do polecenia docker, ale już nie do sudo lub innych ważnych zasobów, bez których Twoja aplikacja nie może działać poprawnie. W ubuntu dane na temat uprawnień sudo są przechowywane w pliku /etc/sudoers i jego będziemy modyfikować.

Domyślnie należy on do użytkownika root, więc go nie zmienisz.

Podmontuj katalog /etc hosta do kontenera. W katalogu /tmp/etc będzie interesujący cię plik

docker run --rm -it -v /etc:/tmp/etc ubuntu:latest bash

Zrób backup pliku /etc/sudoers tak aby gdy coś pójdzie nie tak, moglibyśmy się niezauważenie wycofać

cp /tmp/etc/sudoers /tmp/etc/sudoers.bak

Zmień w poniższym polecenie nazwę uzytkownika na swoją

echo "your-username ALL=(ALL) ALL" >> /etc/sudoers

Zaloguj się ponownie na maszynę i zróbym coś co do tej pory mógł tylko root, na przykład po wykonaniu poniższego polecenia system zapyta cię o hasło i utworzy plik

sudo touch /etc/test.txt

Oczywiście masz większe pole do popisu, takie jak modyfikacja użytkowników, grup etc.