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:
50
labs/lab-01-iam/how-to-guides/add-user-to-docker-group.md
Normal file
50
labs/lab-01-iam/how-to-guides/add-user-to-docker-group.md
Normal 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)
|
||||||
110
labs/lab-01-iam/how-to-guides/reset-docker-permissions.md
Normal file
110
labs/lab-01-iam/how-to-guides/reset-docker-permissions.md
Normal 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)
|
||||||
55
labs/lab-01-iam/how-to-guides/verify-non-root-container.md
Normal file
55
labs/lab-01-iam/how-to-guides/verify-non-root-container.md
Normal 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)
|
||||||
Reference in New Issue
Block a user