feat(02-02): create how-to guides for common procedures

- add-user-to-docker-group.md: Quick guide for adding users to docker group
- verify-non-root-container.md: Multiple methods to verify non-root execution
- reset-docker-permissions.md: Complete permission reset guide with troubleshooting
- Procedure-focused, command-first structure
This commit is contained in:
Luca Sacchi Ricciardi
2026-03-24 22:25:31 +01:00
parent 7bd61111f3
commit c759270e95
3 changed files with 215 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
# How-To: Aggiungere un Utente al Gruppo Docker
Guida rapida per aggiungere un utente Linux al gruppo Docker e dargli accesso al socket.
## Comando Rapido
```bash
# Aggiungi utente esistente al gruppo docker
sudo usermod -aG docker nome_utente
```
## Verifica
```bash
# Verifica l'appartenenza al gruppo
groups nome_utente
# Verifica l'accesso docker
sudo -u nome_utente -i docker ps
```
## Nota Importante
I gruppi vengono valutati al login. Per attivare il nuovo gruppo immediatamente:
```bash
# Opzione 1: newgrp (attiva solo per questo comando)
sudo -u nome_utente -i docker ps
# Opzione 2: su - (nuova sessione login)
su - nome_utente
docker ps
# Opzione 3: logout/login (sessione interattiva)
```
## Rimuovi Utente dal Gruppo Docker
```bash
# Rimuovi utente dal gruppo docker
sudo gpasswd -d nome_utente docker
# Oppure modifica i gruppi supplementari
sudo usermod -G nome_utente nome_utente
```
## Vedi Anche
- [Tutorial: Permessi Docker tramite Gruppi](../tutorial/02-docker-group-permissions.md)
- [Reference: Permessi Socket Docker](../reference/docker-socket-permissions.md)

View File

@@ -0,0 +1,110 @@
# How-To: Reset dei Permessi Docker
Guida per ripristinare i permessi del socket Docker e risolvere problemi di accesso.
## Reset dei Permessi del Socket
```bash
# Ferma il demone Docker
sudo systemctl stop docker
# Ripristina la proprietà del socket
sudo chown root:docker /var/run/docker.sock
# Ripristina i permessi (660 = rw-rw----)
sudo chmod 660 /var/run/docker.sock
# Riavvia Docker
sudo systemctl start docker
```
## Verifica
```bash
# Verifica i permessi del socket
ls -l /var/run/docker.sock
```
Atteso: `srw-rw---- 1 root docker ...`
## Ricrea il Gruppo Docker
Se il gruppo docker è stato eliminato:
```bash
# Crea il gruppo docker
sudo groupadd docker
# Riavvia Docker per assicurarti che il socket appartenga al gruppo
sudo systemctl restart docker
```
## Risoluzione Problemi Comuni
### Problema: "Got permission denied while trying to connect"
**Causa:** Utente non in gruppo docker o permessi socket errati
**Soluzione:**
```bash
# Verifica gruppi utente
groups $USER
# Aggiungi al gruppo se necessario
sudo usermod -aG docker $USER
# Verifica permessi socket
ls -l /var/run/docker.sock
# Correggi se necessario
sudo chmod 660 /var/run/docker.sock
sudo chown root:docker /var/run/docker.sock
```
### Problema: Socket non esiste
**Causa:** Docker non è in esecuzione
**Soluzione:**
```bash
# Avvia Docker
sudo systemctl start docker
# Verifica che il socket sia stato creato
ls -l /var/run/docker.sock
```
### Problema: Group membership non attiva
**Causa:** I gruppi vengono valutati al login
**Soluzione:**
```bash
# Attiva il gruppo per la sessione corrente
newgrp docker
# Oppure fai login di nuovo
su - $USER
```
## Reset Completo dell'Ambiente
Per reset completo dell'ambiente Docker tra i lab:
```bash
# Usa lo script di reset
bash scripts/reset-env.sh
# Oppure reset manuale
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker system prune -a
```
## Vedi Anche
- [How-To: Ambiente Reset](../../how-to-guides/reset-docker-environment.md)
- [Tutorial: Permessi Docker](../tutorial/02-docker-group-permissions.md)

View File

@@ -0,0 +1,55 @@
# How-To: Verificare che un Container Giri come Non-Root
Guida rapida per verificare che un container non giri come utente root (requisito INF-01).
## Metodo 1: docker exec whoami
```bash
docker exec <container_name> whoami
```
Se mostra `root`, il container NON è conforme a INF-01.
## Metodo 2: docker inspect
```bash
docker inspect <container_name> --format='{{.Config.User}}'
```
- Se vuoto, il container gira come root (default)
- Se mostra un UID/nome, il container gira come quell'utente
## Metodo 3: docker top
```bash
docker top <container_name>
```
Guarda la colonna USER:
- `0` o `root` = NON conforme
- Altri UID (es. `1000`) = CONFORME
## Verifica Tutti i Container
```bash
# Verifica tutti i container in esecuzione
docker ps --format "{{.Names}}" | while read container; do
echo "Container: $container"
docker exec $container whoami 2>/dev/null || echo "N/A"
done
```
## Verifica con docker-compose
```bash
# Verifica tutti i servizi nel compose file
docker-compose ps --services | while read service; do
container=$(docker-compose ps -q $service)
echo "Service: $service, User: $(docker exec $container whoami)"
done
```
## Vedi Anche
- [Tutorial: Container Non-Root](../tutorial/03-verify-iam-setup.md)
- [Test: Script Non-Root](../tests/03-non-root-test.sh)