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