# 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 ```