# Reference: Permessi del Socket Docker Specifiche tecniche del socket Docker Unix domain socket e controllo accessi. ## Percorso del Socket ``` /var/run/docker.sock ``` ## Permessi Standard ``` srw-rw---- 1 root docker 0 Mar 24 20:00 /var/run/docker.sock ``` | Campo | Valore | Significato | |-------|--------|-------------| | Tipo | `s` | Socket Unix domain | | Permessi | `rw-rw----` (660) | Owner e gruppo possono leggere/scrivere | | Owner | `root` | Il demone Docker gira come root | | Gruppo | `docker` | Membri del gruppo docker possono accedere | | Altro | `---` | Nessun altro permesso | ## Controllo Accessi L'accesso al socket è controllato dai permessi file system standard Linux: ### Chi puo accedere? | Utente | Accesso | Motivo | |--------|---------|--------| | root | Si | Proprietario del socket | | Membri del gruppo docker | Si | Permesso gruppo (rw) | | Altri utenti | No | Nessun permesso | ### Verifica Permessi ```bash # Mostra permessi dettagliati stat -c "%a %U %G %n" /var/run/docker.sock # Output: 660 root docker /var/run/docker.sock # Verifica gruppo del socket stat -c "%G" /var/run/docker.sock # Output: docker # Verifica proprietario stat -c "%U" /var/run/docker.sock # Output: root ``` ## Modifica Permessi ```bash # Modifica permessi (non raccomandato: 666 permette accesso a tutti) sudo chmod 660 /var/run/docker.sock # Modifica gruppo sudo chown root:docker /var/run/docker.sock # Modifica proprietario (non raccomandato) sudo chown $USER /var/run/docker.sock ``` ⚠️ **WARNING:** Non usare mai `chmod 666` o `777` sul socket Docker. Questo elimina tutti i controlli di accesso. ## Docker Daemon e Socket ### Allocazione Socket Il demone Docker crea il socket all'avvio: ```bash # Avvia demone (crea/ricrea socket) sudo systemctl start docker # Riavvia per ripristinare permessi sudo systemctl restart docker ``` ### Rootless Docker Con rootless Docker, il socket si trova in: ``` $XDG_RUNTIME_DIR/docker.sock # Tipicamente: /run/user/1000/docker.sock ``` ## Troubleshooting | Problema | Diagnosi | Soluzione | |----------|----------|-----------| | Permission denied | Utente non in gruppo docker | `sudo usermod -aG docker $USER` | | Socket non trovato | Docker non in esecuzione | `sudo systemctl start docker` | | Permessi errati | chmod eseguito sul socket | `sudo systemctl restart docker` | | Gruppo errato | Chown sul socket | `sudo chown root:docker /var/run/docker.sock` | ## Comandi Rapidi ```bash # Verifica permessi attuali ls -l /var/run/docker.sock # Verifica chi puo accedere namei -l /var/run/docker.sock # Trova processi con handle al socket sudo lsof /var/run/docker.sock ``` ## Vedi Anche - [Reference: Utenti e Gruppi Linux](./linux-users-groups.md) - [Explanation: Parallelismi IAM](../explanation/docker-iam-parallels.md)