178 lines
4.0 KiB
Markdown
178 lines
4.0 KiB
Markdown
# Tutorial: Creare Utenti Linux per il Lab IAM
|
|
|
|
In questo tutorial creerai utenti Linux con permessi limitati per simulare utenti IAM in un ambiente cloud. Imparerai a creare utenti, verificare i permessi e gestire l'appartenenza ai gruppi.
|
|
|
|
## Obiettivo
|
|
|
|
Creare un utente Linux `lab01_student` che non ha accesso iniziale a Docker, simulando un utente cloud senza permessi.
|
|
|
|
## Prerequisiti
|
|
|
|
- Accesso a un terminale Linux con privilegi sudo
|
|
- Docker Engine installato e in esecuzione
|
|
- Comandi base: `useradd`, `groups`, `id`
|
|
- I comandi `sudo` richiedono la password del TUO utente corrente in una sessione interattiva
|
|
|
|
---
|
|
|
|
## Passo 1: Verifica l'ambiente
|
|
|
|
Prima di creare utenti, verifichiamo che l'ambiente sia pronto.
|
|
|
|
Esegui:
|
|
|
|
```bash
|
|
# Verifica che Docker risponda correttamente
|
|
docker info >/dev/null && echo "Docker raggiungibile"
|
|
|
|
# Verifica che il gruppo docker esista
|
|
getent group docker
|
|
```
|
|
|
|
Atteso:
|
|
- `docker info` non deve restituire errori
|
|
- Il gruppo docker deve essere mostrato
|
|
|
|
Se qualcosa non funziona, consulta [Troubleshooting](#troubleshooting).
|
|
|
|
---
|
|
|
|
## Passo 2: Crea un nuovo utente Linux
|
|
|
|
Creiamo un utente che simulerà un utente cloud senza permessi IAM.
|
|
Se hai gia eseguito il lab in precedenza, riparti da uno stato pulito rimuovendo l'utente prima di ricrearlo.
|
|
|
|
Esegui:
|
|
|
|
```bash
|
|
# Se l'utente esiste già, rimuovilo e ricrealo
|
|
if id lab01_student &>/dev/null; then
|
|
sudo userdel -r lab01_student
|
|
fi
|
|
|
|
# Crea l'utente lab01_student
|
|
sudo useradd -m -s /bin/bash lab01_student
|
|
|
|
# Verifica che l'utente sia stato creato
|
|
id lab01_student
|
|
```
|
|
|
|
Atteso:
|
|
|
|
```
|
|
uid=1001(lab01_student) gid=1001(lab01_student) gruppi=1001(lab01_student)
|
|
```
|
|
|
|
Spiegazione:
|
|
- `-m` crea la home directory
|
|
- `-s /bin/bash` imposta la shell di default
|
|
- L'utente ha solo il proprio gruppo iniziale
|
|
|
|
---
|
|
|
|
## Passo 3: Verifica i gruppi dell'utente
|
|
|
|
Controlliamo a quali gruppi appartiene l'utente.
|
|
|
|
Esegui:
|
|
|
|
```bash
|
|
groups lab01_student
|
|
```
|
|
|
|
Atteso:
|
|
|
|
```
|
|
lab01_student : lab01_student
|
|
```
|
|
|
|
Nota: L'utente NON è nel gruppo `docker`. Questo è corretto - simuliamo un utente senza permessi.
|
|
|
|
---
|
|
|
|
## Passo 4: Verifica che l'utente NON può accedere a Docker
|
|
|
|
Prova a eseguire un comando Docker come l'utente `lab01_student`.
|
|
|
|
Esegui:
|
|
|
|
```bash
|
|
# Esegui docker ps come lab01_student
|
|
sudo -u lab01_student docker ps
|
|
```
|
|
|
|
Atteso:
|
|
|
|
```
|
|
permission denied while trying to connect to the Docker daemon socket
|
|
```
|
|
|
|
Questo è il comportamento corretto! L'utente non ha ancora permessi Docker.
|
|
In questo passo usiamo volutamente `sudo -u` senza `-i` per mostrare il fallimento iniziale dell'accesso al socket Docker.
|
|
L'output esatto puo cambiare leggermente in base alla versione di Docker, ma il punto chiave e che l'accesso venga negato.
|
|
|
|
---
|
|
|
|
## Passo 5: Imposta una password per l'utente (opzionale)
|
|
|
|
Se vuoi poter fare login come questo utente:
|
|
|
|
Esegui:
|
|
|
|
```bash
|
|
sudo passwd lab01_student
|
|
```
|
|
|
|
Inserisci una password quando richiesto.
|
|
|
|
---
|
|
|
|
## Verifica
|
|
|
|
Hai completato questo tutorial quando:
|
|
- [ ] L'utente `lab01_student` esiste
|
|
- [ ] L'utente NON è nel gruppo docker
|
|
- [ ] L'utente NON può eseguire comandi docker
|
|
- [ ] Il comando `groups lab01_student` mostra solo il proprio gruppo
|
|
|
|
## Prossimo Passo
|
|
|
|
Nel [prossimo tutorial](./02-docker-group-permissions.md) imparerai a dare permessi Docker all'utente tramite i gruppi.
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
**Problema: `useradd: user 'lab01_student' already exists`**
|
|
|
|
Soluzione:
|
|
|
|
```bash
|
|
# Elimina l'utente esistente e ricrealo
|
|
if id lab01_student &>/dev/null; then
|
|
sudo userdel -r lab01_student
|
|
fi
|
|
sudo useradd -m -s /bin/bash lab01_student
|
|
```
|
|
|
|
**Problema: Docker non è in esecuzione**
|
|
|
|
Soluzione:
|
|
|
|
```bash
|
|
sudo systemctl start docker
|
|
sudo systemctl enable docker
|
|
```
|
|
|
|
**Problema: `docker info` fallisce con `permission denied`**
|
|
|
|
Soluzione: il tuo utente principale non ha ancora accesso a Docker. Completa prima i prerequisiti generali del corso oppure usa una sessione in cui Docker funziona gia per il tuo utente.
|
|
|
|
**Problema: Il gruppo docker non esiste**
|
|
|
|
Soluzione:
|
|
|
|
```bash
|
|
sudo groupadd docker
|
|
```
|