Files
laboratori-cloud/labs/lab-01-iam/reference/docker-socket-permissions.md
Luca Sacchi Ricciardi cc3a28f192 feat(02-02): create reference documents with technical specifications
- 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
2026-03-24 22:26:25 +01:00

117 lines
2.8 KiB
Markdown

# 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)