fix(lab-01): align student flow and final verification
This commit is contained in:
@@ -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**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user