GNU/Linux: aggiungere un utente al sistema

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

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!