Introduzione

In questo tutorial, spiegheremo come aggiungere un utente a un gruppo nei sistemi Linux. Ti mostreremo anche come rimuovere un utente da un gruppo e come creare, eliminare ed elencare gruppi.

Gruppi Linux

I gruppi Linux sono unità organizzative utilizzate per organizzare e amministrare gli account utente in Linux. Lo scopo principale dei gruppi è definire un insieme di privilegi come lettura, scrittura o esecuzione dell'autorizzazione per una determinata risorsa che può essere condivisa tra gli utenti all'interno del gruppo.

Esistono due tipi di gruppi nei sistemi operativi Linux:

  • Gruppo primario: quando un utente crea un file, il gruppo del file viene impostato sul gruppo primario dell'utente. Di solito, il nome del gruppo è uguale al nome dell'utente. Le informazioni sul gruppo primario dell'utente sono archiviate nel file /etc/passwd.
  • Gruppo secondario o supplementare: utile quando si desidera concedere determinate autorizzazioni di file a un set di utenti membri del gruppo. Ad esempio, se si aggiunge un utente specifico al gruppo docker, l'utente erediterà i diritti di accesso dal gruppo e sarà in grado di eseguire comandi docker.

Ogni utente può appartenere esattamente a un gruppo primario o zero o più gruppi secondari.

Solo i root o gli utenti con accesso sudo possono aggiungere un utente a un gruppo.

Come aggiungere un utente esistente a un gruppo

Per aggiungere un utente esistente a un gruppo secondario, utilizzare il comando usermod -a -G seguito il nome del gruppo e l'utente:

sudo usermod -a -G groupname username

Ad esempio, per aggiungere l'utente noviello al gruppo sudo è necessario eseguire il comando seguente:

sudo usermod -a -G sudo noviello

Utilizzare sempre l'opzione -a (append) quando si aggiunge un utente a un nuovo gruppo. Se si omette l'opzione -a, l'utente verrà rimosso da tutti i gruppi non elencati dopo l'opzione -G.

In caso di successo, il comando usermod non visualizza alcun output. Ti avverte solo se l'utente o il gruppo non esiste.

Come aggiungere un utente esistente a più gruppi in un solo comando

Se si desidera aggiungere un utente esistente a più gruppi secondari in un solo comando, utilizzare il comando usermod seguito dall'opzione -G  e dal nome dei gruppi separati da ,(virgole):

sudo usermod -a -G group1,group2 username

Come rimuovere un utente da un gruppo

Per rimuovere un utente da un gruppo, utilizzare il comando gpasswd con l'opzione -d.

Nel seguente esempio stiamo rimuovendo l'utente username dal gruppo groupname:

sudo gpasswd -d username groupname

Come creare un gruppo

Per creare un nuovo gruppo , utilizzare il comando groupadd seguito dal nome del gruppo:

sudo groupadd groupname

Come eliminare un gruppo

Per eliminare un gruppo esistente, utilizzare il comando groupdel seguito dal nome del gruppo:

sudo groupdel groupname

Come modificare il gruppo primario di un utente

Per modificare il gruppo primario di un utente, utilizzare il comando usermod seguito dall'opzione -g:

sudo usermod -g groupname username

Nel seguente esempio, stiamo cambiando il gruppo primario dell'utente noviello in developers:

sudo usermod -g developers noviello

Come creare un nuovo utente e assegnare gruppi in un comando

Il seguente comando useradd crea un nuovo utente denominato alice con gruppo principale users e gruppi secondari wheel e developers.

sudo useradd -g users -G wheel,developers alice

Visualizzare gruppi utenti

Per visualizzare informazioni complete sull'utente, inclusi tutti i gruppi di cui un utente è membro, utilizzare il comando id seguito dal nome utente:

id username

Se si omette il nome utente, il comando stamperà le informazioni sull'utente attualmente connesso. Controlliamo l'utente noviello:

id noviello
uid=1000(noviello) gid=100(users) groups=100(users),10(wheel),95(storage),98(power),990(libvirt),993(docker),999(kvm)

Dal precedente esempio, si vede che il gruppo primario dell'utente è users ed appartiene ai gruppi supplementari  wheel, storage, libvirt, docker, e kvm.

Utilizzare il comando groups per visualizzare i gruppi supplementari dell'utente:

groups noviello
wheel storage power users libvirt docker kvm

Se non viene passato alcun nome utente al comando groups, verranno stampati i gruppi dell'utente attualmente connesso.

Conclusione

In questo tutorial, ti abbiamo mostrato come aggiungere un utente a un gruppo.

Gli stessi comandi si applicano a qualsiasi distribuzione Linux, inclusi Ubuntu, CentOS, RHEL, Debian e Linux Mint.