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
This commit is contained in:
116
labs/lab-01-iam/reference/docker-socket-permissions.md
Normal file
116
labs/lab-01-iam/reference/docker-socket-permissions.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user