57 lines
1.4 KiB
Markdown
57 lines
1.4 KiB
Markdown
# 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
|
|
- Un UID non-zero (es. `1000`) = conforme
|
|
- Su alcuni host puoi vedere il nome utente host associato allo stesso UID invece del numero
|
|
|
|
## 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 finale del lab](../tests/99-final-verification.sh)
|