Oggi vediamo come si aggiunge un utente al sistema e alcuni comandi utili per gestire l’utente appena creato. Ci concentriamo sul comando useradd, che ha parecchie opzioni importanti da considerare. I comandi di questo articolo vanno lanciati come root, o con sudo davanti.
Useradd nella sua forma piu’ semplice
Senza nessun flag, useradd crea un utente e lo inserisce nel sistema senza password e senza cartella home. Questo comando crea l’utente prova1:
useradd prova1
L’utente non ha una home directory e non ha una password per fare login, quindi di solito useradd si lancia con qualche opzione attiva.
La cartella home
Con l’opzione -m viene creata anche la home dell’utente:
useradd -m prova2
Nella cartella /home trovi ora la home di prova2. L’utente però non ha ancora una password, e gliela imposti con passwd:
passwd prova2
Ti viene chiesto di scrivere la password e poi di ripeterla. Come in tutti i prompt di password non vedi nessun feedback su quello che scrivi: premi i tasti e dai invio. Se le due password non corrispondono, la password non viene modificata; se corrispondono, viene aggiornata. A questo punto prova2 potrebbe fare login nel sistema.
Il gruppo di login
Una cosa molto importante: quando crei un utente così, viene creato anche un gruppo con lo stesso nome dell’utente. Lo vedi guardando i file della sua home:
ls -la /home/prova2
Il gruppo di tutte le cartelle e i file creati è prova2, esattamente come il nome utente. Va bene per un utente con il suo spazio di lavoro, ma può non andare bene per uno che deve collaborare con altri su cartelle specifiche: lì serve che sia membro del gruppo proprietario della cartella condivisa. Il gruppo si può specificare alla creazione, oppure modificare dopo.
Immagina un utente che per qualche ragione deve creare file nella cartella del server web, e quei file devono avere il gruppo www-data, così che il server possa a sua volta modificarli. Non concentrarti sul server web, ne faremo un video apposta: il concetto è l’utente che al login ha un certo gruppo. Si usa l’opzione -g, con il gruppo di Apache, www-data:
useradd -m -g www-data prova3
ls -la /home/prova3
Il gruppo proprietario della home di prova3 è www-data. Anche i nuovi file che l’utente creerà avranno gruppo www-data, e quindi potrà collaborare in una cartella di proprietà di quel gruppo. È un caso un po’ particolare, ma può essere utile saperlo.
Una home diversa
Se l’utente deve avere una home particolare, per esempio la cartella /var/esempio che usiamo per gli esercizi, al posto di -m si usa -d, che specifica la cartella da usare come home:
useradd -d /var/esempio prova4
Gli utenti sono tutti nel file /etc/passwd. Lo leggi con cat e filtri con grep per vedere gli utenti di prova:
cat /etc/passwd | grep prova
Nell’elenco che esce, l’utente prova4 ha come home directory /var/esempio. Molto semplice.
Aggiungere un gruppo
Supponiamo di voler creare un gruppo chiamato esempio, assegnargli la proprietà della cartella /var/esempio, in modo che più utenti possano collaborare, e poi assegnarlo come gruppo di default a un nuovo utente. Il gruppo si crea con groupadd e la proprietà della cartella si cambia con chgrp:
groupadd esempio
chgrp esempio /var/esempio
A questo punto aggiungi l’utente prova5 con gruppo di default esempio e home /var/esempio:
useradd -g esempio -d /var/esempio prova5
Anche qui poi gli assegneresti una password con passwd. L’utente, essendo membro del gruppo esempio, può accedere alla cartella /var/esempio. Inoltre, poiché il suo gruppo di default è esempio, ogni file che crea avrà automaticamente quel gruppo e potrà essere gestito dagli altri membri dello stesso gruppo nella stessa cartella.
Cancellare un utente
Se l’utente non ha una home directory, basta userdel:
userdel prova1
Se ha una home directory e vuoi cancellare anche quella, aggiungi il flag -r:
userdel -r prova2
Il sistema ti avvisa che non ha trovato la cartella spool della posta dell’utente, ma ha comunque eliminato la home. Per verificare che gli utenti siano stati rimossi riguardi /etc/passwd:
cat /etc/passwd | grep prova
Prova1 e prova2 sono spariti. Lo stesso vale per gli altri:
userdel -r prova3
userdel prova4
userdel prova5
Nota che per prova4 e prova5 non uso -r: la loro home è /var/esempio, una cartella che ci servirà ancora negli esempi futuri. Alla fine nel file resta solo l’utente prova-deploy, che non fa parte di quelli gestiti qui.
Conclusione
Queste sono le nozioni di base: creare utenti, assegnare gruppi, impostare la home, cambiare una password e cancellare un utente. Farò sicuramente un altro video per approfondire come modificare gli utenti, i loro permessi e gli attributi. Fammi sapere nei commenti se l’argomento ti interessa. Apri la tua Linux box e comincia a giocare con gli utenti.
Link e risorse
- il video su YouTube
- esempi e comandi della puntata su GitHub
- useradd(8), man page — tutte le opzioni
- passwd(1), man page — il comando passwd
- usermod(8), man page — modificare un utente
- Utenti e gruppi sulla wiki di Arch — in inglese
- passwd(5), man page — il file /etc/passwd
Sostieni il canale
PER SOSTENERE IL CANALE BASTANO UN LIKE E UN’ISCRIZIONE!
questi link sono affiliati Amazon, acquistando i libri che ti consiglio sostieni il canale!
