Gestione degli Utenti e dei Gruppi su Linux da Linea di Comando

Introduzione

Nei sistemi operativi Linux, gli utenti e i gruppi sono due elementi fondamentali per la gestione dei permessi e la sicurezza del sistema. Ogni file, directory e risorsa del sistema ha dei permessi associati, che definiscono chi può accedere, modificare o eseguire quel file. Questi permessi sono basati su un sistema di utenti e gruppi, dove ogni utente ha un proprio identificatore (UID) e può appartenere a uno o più gruppi (identificati con un GID, Group ID).

  • Utente: Un utente rappresenta una singola identità sul sistema, con un suo UID, una home directory e una shell.
  • Gruppo: Un gruppo è un insieme di utenti, che condividono permessi per accedere a determinate risorse del sistema.

Vediamo ora come visualizzare gli utenti e i gruppi presenti nel sistema, e come creare, modificare e rimuovere utenti e gruppi usando comandi da linea di comando.


Visualizzare gli Utenti e i Gruppi

Visualizzare la Lista degli Utenti

In Linux, gli utenti sono definiti nel file /etc/passwd. Possiamo visualizzare l’elenco degli utenti registrati leggendo questo file.

cat /etc/passwd

Questo comando mostrerà una lista con informazioni dettagliate sugli utenti. Ogni linea rappresenta un utente e contiene informazioni come il nome utente, l’UID, la directory home e la shell predefinita. Se si vuole visualizzare solo i nomi degli utenti, possiamo usare:

cut -d: -f1 /etc/passwd

Visualizzare la Lista dei Gruppi

I gruppi sono definiti nel file /etc/group. Per visualizzare la lista dei gruppi presenti sul sistema, possiamo utilizzare:

cat /etc/group

Per visualizzare solo i nomi dei gruppi, possiamo estrarre il primo campo di ogni riga:

cut -d: -f1 /etc/group

Gestione degli Utenti

1. Creazione di un Utente

Per creare un nuovo utente, utilizziamo il comando useradd, specificando alcune opzioni.

sudo useradd -m -s /bin/bash -d /home/nuovo_utente nuovo_utente

Spiegazione degli argomenti:

  • -m: Crea automaticamente la directory home dell’utente.
  • -s /bin/bash: Imposta la shell di login dell’utente (qui impostata a Bash).
  • -d /home/nuovo_utente: Specifica la directory home dell’utente.
  • nuovo_utente: Nome del nuovo utente.

Dopo aver creato l’utente, dobbiamo impostare una password:

sudo passwd nuovo_utente

2. Modifica di un Utente

Per modificare le informazioni di un utente già esistente, possiamo usare il comando usermod.

Esempio: Cambiare la shell di login dell’utente

sudo usermod -s /bin/zsh nuovo_utente

Esempio: Cambiare la home directory dell’utente

sudo usermod -d /home/nuova_home -m nuovo_utente
  • -d /home/nuova_home: Imposta una nuova home directory.
  • -m: Sposta i file dalla vecchia home directory alla nuova.

3. Rimozione di un Utente

Per rimuovere un utente, utilizziamo userdel.

sudo userdel -r nuovo_utente
  • -r: Rimuove anche la directory home dell’utente e i file associati.

Gestione dei Gruppi

1. Creazione di un Gruppo

Per creare un nuovo gruppo, utilizziamo il comando groupadd.

sudo groupadd nuovo_gruppo

2. Modifica di un Gruppo

Per modificare un gruppo, possiamo usare groupmod.

Esempio: Cambiare il nome del gruppo

sudo groupmod -n nuovo_nome_gruppo vecchio_gruppo
  • -n nuovo_nome_gruppo: Specifica il nuovo nome per il gruppo.

3. Rimozione di un Gruppo

Per rimuovere un gruppo, utilizziamo il comando groupdel.

sudo groupdel nuovo_gruppo

Assegnazione e Rimozione di un Utente da un Gruppo

Aggiungere un utente a un gruppo

Per aggiungere un utente a un gruppo esistente, utilizziamo il comando usermod con l’opzione -aG.

sudo usermod -aG nuovo_gruppo nuovo_utente
  • -aG: Aggiunge l’utente a un gruppo senza rimuoverlo dagli altri gruppi.

Rimuovere un utente da un gruppo

Per rimuovere un utente da un gruppo, dobbiamo modificare il file /etc/group oppure usare il comando gpasswd.

sudo gpasswd -d nuovo_utente nuovo_gruppo

Esempi di Utilizzo Completi

Creare un nuovo utente con una home directory personalizzata e una shell differente

sudo useradd -m -s /bin/zsh -d /home/esempio utente_esempio sudo passwd utente_esempio

Aggiungere l’utente a un gruppo esistente e poi rimuoverlo

sudo usermod -aG sudo utente_esempio sudo gpasswd -d utente_esempio sudo

Creare un gruppo e assegnare più utenti

sudo groupadd sviluppatori sudo usermod -aG sviluppatori utente_esempio sudo usermod -aG sviluppatori altro_utente

Linkografia Essenziale