fix(lab-01): align student flow and final verification

This commit is contained in:
Luca Sacchi Ricciardi
2026-04-10 13:03:43 +00:00
parent 89c8e6ae07
commit 49e15f7ea2
10 changed files with 121 additions and 55 deletions
+27 -30
View File
@@ -20,18 +20,19 @@ Il lab include uno script automatizzato per verificare tutto.
Esegui:
```bash
bash labs/lab-01-iam/tests/99-final-verification.sh
cd labs/lab-01-iam
bash tests/99-final-verification.sh
```
Questo comando controllerà:
1. Configurazione utenti e gruppi
2. Accesso Docker
3. Esecuzione container non-root
4. Documentazione completa
5. Parallelismi IAM
Se tutti i check sono verdi, sei pronto per procedere!
Nota: lo script finale controlla la configurazione risultante del lab. Non sostituisce i passaggi pratici dei tutorial 1 e 2.
---
## Passo 2: Verifica manuale - Accesso Docker
@@ -52,35 +53,25 @@ Entrambi i comandi dovrebbero funzionare senza errori.
---
## Passo 3: Crea un container NON-ROOT
## Passo 3: Usa il Dockerfile di test NON-ROOT
Ora creiamo un container che gira come utente non-root, seguendo il principio del minimo privilegio.
Il lab include gia un file `Dockerfile.test` che crea un container non-root. In questo passo lo usi direttamente, senza riscriverlo.
Esegui:
```bash
cd labs/lab-01-iam
# Crea un Dockerfile di test
cat > Dockerfile.test << 'EOF'
FROM alpine:3.19
# Crea un utente non-root
RUN addgroup -g 1000 appgroup && \
adduser -D -u 1000 -G appgroup appuser
# Passa all'utente non-root
USER appuser
# Verifica che il container gira come appuser
CMD ["sh", "-c", "whoami && sleep 3600"]
EOF
# Verifica che il file esista
ls -l Dockerfile.test
```
Spiegazione:
- Creiamo un utente `appuser` con UID 1000
- Passiamo a questo utente con `USER`
- Il container ora girerà come `appuser`, non come `root`
- Il file crea un utente `appuser` con UID 1000
- Passa a questo utente con `USER`
- Il container ora girera come `appuser`, non come `root`
Se vuoi eseguire i prossimi comandi come l'utente appena autorizzato, apri prima una sessione login pulita con `sudo -u lab01_student -i`.
---
@@ -91,11 +82,14 @@ Ora costruiamo e facciamo partire il container.
Esegui:
```bash
# Rimuovi eventuale container rimasto da prove precedenti
docker rm -f lab01-test-container 2>/dev/null || true
# Costruisci l'immagine
docker build -f Dockerfile.test -t test-non-root .
docker build -f Dockerfile.test -t test-non-root:latest .
# Fai partire il container
docker run --name lab01-test-container -d test-non-root
docker run --name lab01-test-container -d test-non-root:latest
```
Atteso:
@@ -142,7 +136,8 @@ docker top lab01-test-container
```
Atteso:
- La colonna USER mostra il tuo username corrente (non `root`)
- La colonna USER NON deve mostrare `root` o `0`
- A seconda dell'host puoi vedere `1000`, `appuser` oppure il nome utente host associato a UID 1000
---
@@ -158,7 +153,7 @@ docker stop lab01-test-container
docker rm lab01-test-container
# Rimuovi l'immagine
docker rmi test-non-root
docker rmi test-non-root:latest
```
---
@@ -191,17 +186,19 @@ Hai completato questo tutorial quando:
**Problema: `docker exec` mostra "root"**
Soluzione: Verifica che il docker-compose.yml abbia la direttiva `user:`
Soluzione: Verifica che il Dockerfile di test contenga `USER appuser` oppure che il `docker-compose.yml` abbia la direttiva `user:`.
```bash
# Verifica che user: sia nel docker-compose.yml
# Verifica che Dockerfile.test passi all'utente non-root
grep "^USER" Dockerfile.test
# Oppure verifica che user: sia nel docker-compose.yml
grep "user:" docker-compose.yml
# Dovrebbe mostrare: user: "1000:1000"
```
**Problema: `docker top` mostra "root" o username sbagliato**
Soluzione: Il container è stato avviato come root o da un utente diverso. Verifica con `docker inspect` o riavvia il container correttamente.
Soluzione: usa `docker exec` e `docker inspect` come fonti principali. `docker top` mostra il processo visto dall'host e puo visualizzare un UID numerico o un nome utente host, ma non deve mostrare `root`.
**Problema: Il test INF-01 fallisce**