Site icon Tosolini.info

Docker: root password

E’ probabile che ad un certo punto abbiate la necessità di effettuare qualche comando all’interno di un container in Docker che prevede di elevarsi a super utente. Supponendo che il container in questione derivi da una immagine importata, ad esempio dal servizio Docker Hub, non siamo a conoscenza di questo dato.

In realtà la cosa è voluta, ed anzi se in qualche progetto troviamo la password di ROOT scritta nelle istruzioni semmai quella è una cosa strana.

Infatti è possibile accedere come utente ROOT senza conoscere la password, poiché siamo noi a gestire il contenitore e in questo caso proprio Docker medesimo prevede tale funzione.

Facciamo un esempio reale, in un test con l’ERP Odoo, avevo necessità di dare un comando come utente ROOT. Ovviamente la password non è nota.

Qui va fatta una puntualizzazione, prendiamo in esempio la gestione di Docker e dei Container con Visual Studio Code. In questo caso è probabile che vediate il nome del container scritto in chiaro, ma che il comando che andremo a dare non vi funzioni. Infatti è necessario utilizzare il nome del container che Docker stesso ha assegnato.

Qui di seguito una immagine esplicativa:

Passiamo al comando vero e proprio che sarà:

docker exec -u 0 -it odoo_web_1 bash

il comando “-u 0” indica l’user il cui ID è appunto zero, ovvero in Linux è, salvo casi particolari, l’utente ROOT. L’opzione “-it” indica di avere una iterazione (“interactive”) e t di allocare un pseudo terminale. Segue il nome del container, che deve essere quello indicato nell’immagine, e l’attivazione di una BASH in Linux. L’elenco delle opzioni complete di “exec” è il seguente:

-d, –detach Detached mode: run command in the background
–detach-keys string Override the key sequence for detaching a container
-e, –env list Set environment variables
-i, –interactive Keep STDIN open even if not attached
–privileged Give extended privileges to the command
-t, –tty Allocate a pseudo-TTY
-u, –user string Username or UID (format: [:])
-w, –workdir string Working directory inside the container

A questo punto ci troviamo una bash come utente root, confermato dalla BASH medesima:

root@6c81d18140b2:/# cd /mnt/extra-addons/

Da qui in poi possiamo dare tutti i comandi come super utente.

Ammetto che chi arriva come sistemista Linux troverà la cosa poco pratica, e il fatto di doversi ricordare una cosa simile in effetti lo è. Dal punto di vista della sicurezza è certo che solo chi ha accesso ai Container può accedere al sistema.

Exit mobile version