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?
- Viene creata una nuova entry nel file
/etc/passwd
per l'utente. - Viene generata una directory personale (ad esempio,
/home/nome_utente
). - Vengono configurati i parametri di base (ad esempio, la shell predefinita).
- 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:
- Impostare una password per l'utente.
- 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
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
Aggiungiamo l'utente
tester
:sudo adduser tester
Assicurati che l'utente sia stato creato:
cat /etc/passwd | grep tester
Compito 2: Configura i parametri dell'utente
Cambia il nome dell'utente:
sudo usermod -l test_user tester
Cambia la directory home dell'utente:
sudo usermod -d /home/test_user -m test_user
Assicurati che le modifiche siano state applicate:
ls -l /home/
Modifica la shell dell'utente:
sudo usermod --shell /bin/zsh test_user
Controlla i nuovi dati dell'utente:
cat /etc/passwd | grep test_user
Compito 3: Imposta una nuova password per l'utente
Imposta una password per l'utente:
sudo passwd test_user
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"
- Per prima cosa esegue il comando
ls -l
, che mostra l'elenco dei file nella directory corrente - L'output del primo comando
ls
viene rediretto come input per il secondo comandogrep
tramite una pipe|
- 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
- Per prima cosa esegue il comando
cat file.txt
, che mostra a schermo il contenuto del file file.txt - L'output del primo comando
cat
viene rediretto come input per il secondo comandogrep
tramite una pipe|
- Il secondo comando filtra le righe ricevute e restituisce solo quelle che contengono Linux
- Poi l'output del secondo comando
grep
viene rediretto come input per il terzo comandowc
tramite una pipe|
- Il terzo comando conta il numero di righe ricevute e lo mostra
8. Errori tipici e sfumature
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.
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.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.Valori di
UID
eGID
. A volte gli amministratori vogliono specificare i valori diUID
(identificatore utente) eGID
(identificatore gruppo) alla creazione di un utente. Per questo si utilizza il comandouseradd
, 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.
GO TO FULL VERSION