- 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
117 lines
2.8 KiB
Markdown
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)
|