Appunti su Gentoo Linux.
La gestione degli utenti

Introduzione

In un Sistema GNU/Linux riuscire a gestire correttamente la creazione degli utenti fin da subito, significa risparmiarsi tanti problemi in seguito. Gli strumenti per aggiungere un utente al sistema sono svariati, dall'aggiunta manuale con un editor di testo, all'uso di script come useradd, fino ad interfacce grafiche come quelle presenti in Gnome e KDE. Il metodo che preferisco è quello di usare il comando useradd.

Prima di mostrare come si crea un utente devo dire due parole riguardo al gruppo primario degli utenti creati (cioè il gruppo assegnato a ogni file creato da un utente). Solitamente si hanno due possibilità.

1. La prima possibilità è che il gruppo primario di ogni utente sia lo stesso, solitamente lo si chiama gruppo users. Inoltre la umask di default è pari a 0022, pertanto un nuovo file avrà come proprietario l'utente che l'ha creato, che avrà su di esso tutti i permessi, e come gruppo il gruppo users, con permessi in lettura. Questo comportamento, sebbene lecito, crea dei problemi in alcune situazioni. Una di queste è per esempio che non si possono creare (senza compromettere la sicurezza) delle cartelle condivise dove tutti gli utenti possano creare e cancellare i file di chiunque.

2. La seconda possibilità è che ogni nuovo utente abbia come gruppo primario un gruppo con il nome dell'utente stesso. Questo permette di mettere l'umask a 0002, cioè meno restrittiva, ma comunque senza problemi di sicurezza dato che nessun'altro, se non l'utente stesso, appartiene al proprio gruppo primario. Questo è il comportamento che preferisco e quello usato dalle distribuzioni più famose. Questo approccio va sotto il nome di User Private Groups.

In Gentoo, di default, ogni nuovo utente ha un gruppo privato con lo stesso nome dell'utente (la variabile USERGROUPS_ENAB che si trova nel file /etc/login.defs è impostata su "yes"). La umask è però più restrittiva di quanto serve: 0022 invece che 0002. Per cambiare la umask globale basta modificare il file /etc/profile e impostare la umask passi da 0022 a 0002.

Aggiungere un utente

Il comando per aggiungere gli utenti è, come anticipato, useradd. Le impostazioni si trovano nel file /etc/default/useradd ma vanno tutte già bene così e quindi nessun intervento è necessario. Ecco un esempio su come si crea un utente con useradd:

useradd -c "Francesco Biccari" -G users,wheel,audio -m biccari

-c "Francesco Biccari" è solo un commento al nome utente e può anche essere omesso. -G users,wheel,audio aggiunge l'utente ai gruppi specificati (si ricordi che tali gruppi devono esistere. Ovviamente è possibile aggiungere o togliere un utente da un gruppo in un secondo momento). L'opzione -m dice a useradd di creare la home dell'utente (che sarà /home/biccari/). Infine biccari è il nome utente. Di default, siccome la variabile USERGROUPS_ENAB del file /etc/login.defs è uguale a "yes", verrà creato anche il gruppo biccari che sarà il gruppo primario dell'utente biccari.

La home dell'utente avrà i permessi 755 quindi il proprietario della directory, cioè l'utente stesso, potrà fare tutto, gli utenti appartenenti al gruppo primario dell'utente in questione potranno solo accedere in lettura a tale directory e lo stesso dicasi per tutti gli altri utenti.

Per non far accedere altre persone alla vostra home è sufficiente dare:

chmod 770 /home/utente

oppure, nel caso qualcosa potrà far parte del vostro "gruppo utente"

chmod 700 
/home/utente

Se la home dell'utente già esiste (per esempio si è reinstallato Gentoo senza aver formattato la home. In questo caso consiglio di cancellare tutti i file di configurazione della propria home)

useradd -c "Francesco Biccari" -G users,wheel,audio -d /home/biccari biccari

Cancellare un utente

Per cancellare un utente bisogna usare il comando userdel

userdel biccari (toglie l'utente ma lascia la home) userdel -r 
biccari (toglie l'utente e la sua home) 

I gruppi

I gruppi si trovano in /etc/group

Per aggiungere un utente a un gruppo

gpasswd -a utente 
gruppo

Per cancellare un utente da un gruppo

gpasswd -d utente 
gruppo

Altre cose

Per modificare in un sol colpo il gruppo di tutti i file e le cartelle della vostra home (in questo esempio il nome del gruppo è uguale a quello dell'utente):

chgrp -R utente 
utente

Ricordatevi anche di cambiare il gruppo alla vostra home.