- docker-socket-permissions.md: Docker socket technical specs and access control - linux-users-groups.md: Linux user management reference with commands - iam-parallels.md: Quick reference table for IAM parallelism - Pure reference material with tables and specifications
2.8 KiB
2.8 KiB
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
# 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
# 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:
# 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
# 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