CodeGym /Corsi /Docker SELF /Gestione degli utenti: comandi adduser, usermod, passwd

Gestione degli utenti: comandi adduser, usermod, passwd

Docker SELF
Livello 2 , Lezione 1
Disponibile

Gestione degli utenti: comandi adduser, usermod, passwd

1. Perché è importante capire la gestione degli utenti?

Oggi ci immergeremo nella gestione degli utenti, dato che è una parte fondamentale dell'amministrazione di Linux. Creare utenti, configurare il loro ambiente e gestire le loro password — tutto questo diventerà un importante insieme di strumenti per il tuo lavoro. Andiamo!

Spesso, in Linux, ci sono molti utenti che lavorano sul server. Il sistema assegna a ciascuno di essi determinati permessi per proteggere i dati ed evitare il caos. Devi sapere come aggiungere nuovi utenti (ad esempio, sviluppatori nel tuo team), configurare il loro ambiente (ad esempio, cambiare la shell) e, se necessario, limitare l'accesso.


2. Creazione di un utente con il comando adduser

Linux offre il comando adduser, che è una versione più user-friendly del comando useradd. Ti permette di creare nuovi utenti in modo facile e veloce:

Sintassi principale

adduser nome_utente

Cosa succede quando crei un utente?

  1. Viene creata una nuova entry nel file /etc/passwd per l'utente.
  2. Viene generata una directory personale (ad esempio, /home/nome_utente).
  3. Vengono configurati i parametri di base (ad esempio, la shell predefinita).
  4. Ti verrà chiesto di inserire una password e ulteriori informazioni (ad esempio, nome, numero di telefono — ma questi dati non sono obbligatori).

Esempio

Creiamo un nuovo utente chiamato dev_user:

sudo adduser dev_user

Dopo aver inserito questo comando, ti verrà chiesto di:

  1. Impostare una password per l'utente.
  2. Inserire informazioni aggiuntive, che puoi saltare semplicemente premendo Enter.

Verifica

Per verificare che l'utente sia stato creato, puoi visualizzare il file /etc/passwd:

cat /etc/passwd | grep dev_user

Vedrai una stringa contenente le informazioni sull'utente dev_user.


3. Configurazione di un utente con usermod

Quando un utente è già stato creato, potrebbe essere necessario modificare i suoi parametri. Ad esempio, cambiare il nome, impostare una shell diversa o aggiungerlo a un gruppo.

Modifica del nome utente

Prima di tutto, assicurati che l'utente non abbia effettuato l'accesso al sistema. Poi esegui il comando:

sudo usermod -l nuovo_nome vecchio_nome

Esempio:

sudo usermod -l developer dev_user

Adesso l'utente dev_user sarà chiamato developer. Tuttavia, la sua directory home rimarrà per ora quella vecchia.

Cambio della shell predefinita

Supponiamo che tu debba cambiare la shell dell'utente in /bin/zsh. Per farlo, esegui:

sudo usermod --shell /bin/zsh developer

Verifica che la shell sia stata modificata utilizzando il comando:

cat /etc/passwd | grep developer

Modifica della directory home

Se vuoi che il nuovo utente lavori in una directory home diversa, fai così:

sudo usermod -d /nuovo/percorso developer
Importante:

se la directory non esiste ancora, usa l'opzione -m per farla creare e per spostare il contenuto della vecchia directory:

sudo usermod -d /home/new_developer -m developer

4. Gestione delle password con passwd

Impostazione e modifica della password

Per impostare (o cambiare) la password di un utente si utilizza il comando:

sudo passwd nome_utente

Esempio:

sudo passwd developer

Il sistema ti chiederà di inserire due volte la nuova password per assicurarsi che non ci siano errori.

Cambio password obbligatorio al prossimo accesso

Questo può essere utile se stai creando utenti e vuoi che impostino la loro password al primo accesso:

sudo passwd -e developer

Dopo questo, l'utente developer, accedendo al sistema, vedrà un messaggio che richiede di cambiare la password.


5. Pratica

Compito 1: Crea un nuovo utente

  1. Aggiungiamo l'utente tester:

    sudo adduser tester
    
  2. Assicurati che l'utente sia stato creato:

    cat /etc/passwd | grep tester
    

Compito 2: Configura i parametri dell'utente

  1. Cambia il nome dell'utente:

    sudo usermod -l test_user tester
    
  2. Cambia la directory home dell'utente:

    sudo usermod -d /home/test_user -m test_user
    
  3. Assicurati che le modifiche siano state applicate:

    ls -l /home/
    
  4. Modifica la shell dell'utente:

    sudo usermod --shell /bin/zsh test_user
    
  5. Controlla i nuovi dati dell'utente:

    cat /etc/passwd | grep test_user
    

Compito 3: Imposta una nuova password per l'utente

  1. Imposta una password per l'utente:

    sudo passwd test_user
    
  2. Forza l'utente a cambiare la password al prossimo accesso:

    sudo passwd -e test_user
    

6. Introduzione ai pipe | in Linux

I pipe | sono un meccanismo in Unix/Linux che permette di passare l'output di un comando (stdout) come input (stdin) per un altro comando. È uno strumento potente che consente di collegare i comandi, creando "pipeline" per l'elaborazione dei dati.

Come funziona?

Quando utilizzi un pipe tra i comandi, Linux indirizza l'output standard del primo comando all'input standard del successivo. Questo consente di elaborare grandi quantità di dati in modo efficiente senza file temporanei.

Sintassi:

comando1 | comando2 | comando3
  • comando1 genera i dati.
  • comando2 elabora i dati ricevuti.
  • comando3 esegue un'ulteriore elaborazione o salva il risultato.

Esempio:

Visualizzare l'elenco dei file e filtrare in base a un modello:

ls -l | grep ".txt"

Qui, ls -l visualizza l'elenco dei file e grep filtra solo i file con estensione .txt.

Contare le righe che contengono una parola specifica:

cat file.txt | grep "Linux" | wc -l

Viene mostrato il contenuto del file, si cercano le righe con la parola "Linux" e poi si conta il loro numero.

Vantaggi dei pipe:

  • Semplificazione di operazioni complesse.
  • Minimizzazione dell'uso di file temporanei.
  • Possibilità di combinare potenti utility Linux per automatizzare le attività.

7. Introduzione a grep in Linux

grep (Global Regular Expression Print) — è un'utility da riga di comando in Unix/Linux per cercare righe nei file che corrispondono a un determinato pattern. Viene utilizzata molto per filtrare e cercare dati, grazie al supporto per le espressioni regolari e alla flessibilità delle impostazioni.

Come funziona grep?

  • grep prende in input un file di testo (o l'input standard), cerca le righe che corrispondono al pattern specificato e le stampa.
  • Se il pattern non viene trovato, il comando non restituisce niente.

Esempi

Mostrare l'elenco dei file e filtrare in base a un pattern:

ls -l | grep ".txt"
  1. Per prima cosa esegue il comando ls -l, che mostra l'elenco dei file nella directory corrente
  2. L'output del primo comando ls viene rediretto come input per il secondo comando grep tramite una pipe |
  3. Il secondo comando filtra le righe ricevute e restituisce solo quelle che contengono ".txt"

Contare le righe che contengono una determinata parola:

cat file.txt | grep "Linux" | wc -l
  1. Per prima cosa esegue il comando cat file.txt, che mostra a schermo il contenuto del file file.txt
  2. L'output del primo comando cat viene rediretto come input per il secondo comando grep tramite una pipe |
  3. Il secondo comando filtra le righe ricevute e restituisce solo quelle che contengono Linux
  4. Poi l'output del secondo comando grep viene rediretto come input per il terzo comando wc tramite una pipe |
  5. Il terzo comando conta il numero di righe ricevute e lo mostra

8. Errori tipici e sfumature

  1. Errore "user is currently logged in" durante il cambio del nome utente. Se l'utente è attualmente connesso, non puoi cambiare il suo nome. Assicurati che l'utente si sia disconnesso.

  2. Errori durante il cambio della directory home. Se dimentichi di specificare -m, il contenuto della vecchia directory non verrà trasferito in quella nuova. L'utente potrebbe perdere i suoi dati.

  3. Hai dimenticato di impostare la password per l'utente. Dopo aver creato l'utente con adduser, assicurati di verificare che abbia una password impostata. Senza una password, non potrà accedere.

  4. Valori di UID e GID. A volte gli amministratori vogliono specificare i valori di UID (identificatore utente) e GID (identificatore gruppo) alla creazione di un utente. Per questo si utilizza il comando useradd, ma questo argomento fa parte di uno studio più approfondito di Linux.


9. Applicazione pratica

Immagina: sei l'amministratore dei server di un'azienda. I developer si rivolgono a te e ciascuno di loro richiede accesso al sistema con impostazioni personalizzate. Potrai:

  • Creare utenti e assegnare loro l'accesso necessario.
  • Configurare l'ambiente (ad esempio, shell) in base alle loro preferenze.
  • Gestire le password e monitorare la sicurezza.

Questi comandi ti saranno utili anche durante un colloquio per una posizione DevOps o amministratore di sistema. Potrebbero chiederti come crei e configuri utenti, oppure proporti di svolgere questa attività in pratica.


Cheat sheet: comandi principali

Comando Descrizione
sudo adduser nome_utente Crea un nuovo utente.
sudo usermod -l nuovo vecchio Modifica il nome dell'utente.
sudo usermod --shell percorso nome Specifica la shell di default.
sudo usermod -d percorso nome Cambia la directory home.
sudo passwd nome Imposta una nuova password.
sudo passwd -e nome Costringe a cambiare la password al prossimo accesso.

Mettiti alla prova! Linux è sempre una questione di lavoro pratico. Più sperimenti con i comandi, più sarà facile lavorare con sistemi reali.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION