Gestione utenti e gruppi

utenti_06

GNU/Linux è un sistema multiutente e, ad ogni livello di utilizzo, possiamo trovarci a dover interagire con utenti e gruppi. In questo articolo vedremo come gestirli.

Partiamo dall'inizio, esistono tre tipi di utenti:

  • Utente root: Viene anche chiamato superutente, ha il completo e incondizionato controllo del sistema, può eseguire qualsiasi comando senza restrizioni. È di fatto l’amministratore del sistema. , in molte retribuzioni recenti l'utente root è disabilitato (senza password) e si preferisce l'approccio di sudo, cioè quello di "amministratore a tempo".
  • Utenti di sistema: Sono utenti necessari per lo svolgimento di alcune operazioni di sistema, essendo privi di password non hanno facoltà di accesso. Alcuni esempi sono:
    • www-data (server web)
    • mail
    • lp (sistema di stampa)
  • Utenti normali: Gli utenti normali, come da dicitura, sono i classici utenti. Possono accedere e gestire i file di loro proprietà ed i file non di loro proprietà ma solo se membri del gruppo proprietario. Grazie a sudo è possibile trasformare temporaneamente un utente normale in amministratore.

Gruppi

Ogni utente è membro di uno o più gruppi. Come per gli utenti abbiamo gruppi normali (semplici raggruppamenti di utenti) e gruppi di sistema. Fra i gruppi di sistema più comuni spicca sicuramente sudo, i suoi membri sono autorizzati a diventare amministratori a tempo.

Comandi di gestione

Gli utenti ed i gruppi sono gestibili tramite alcuni comandi fondamentali:

  • useradd
  • usermod
  • userdel
  • groupadd
  • groupmod
  • groupdel

Gruppi

Creare un gruppo

Come è facile intuire per creare un gruppo dobbiamo utilizzare il comando groupadd che ha poche ma fondamentali opzioni (riporto solo le principali):

  • -G forzare l’id del gruppo
  • -o permette di utilizzare un id gruppo non univoco (sinceramente non so quali vantaggi può portare)
  • -r per creare un gruppo di sistema

Tutti i parametri sono opzionali quindi nell’uso comune possiamo lanciare:

groupadd nome_gruppo

Modificare un gruppo

Il comando da utilizzare è groupmod. Le opzioni sono molteplici (anche qui riporto le principali):

  • -G per modificare l’id del gruppo
  • -n per rinominare il gruppo

Almeno una delle opzioni è obbligatoria quindi vediamo due esempi:

groupmod -n nuovo_nome vecchio_nome

groupmod -G nuovo_id nome_gruppo

Cancellare un gruppo

Relativamente ai gruppi resta solo il comando groupdel per il quale riporto una sola opzione:

  • -f cancella il gruppo anche se è il gruppo principale di uno o più utenti

L’uso comune è:

groupdel nome_gruppo

Utenti

Creare un utente

Anche per gli utenti i nomi dei comandi sono esplicativi, creiamo usando useradd. Il comando ha numerose opzioni (nessuna obbligatoria):

  • -d cartella principale dell’utente (il default è /home/nome_utente
  • -e data di scadenza, è possibile creare utenti temporanei
  • -f utente non attivo
  • -g nome del gruppo principale (di default è nome_utente), se non esiste viene creato
  • -G nomi dei gruppi addizionali
  • -m crea l’home utente
  • -M non creare la home utente
  • -p password (visto che verrebbe passata in chiaro è preferibile assegnarla dopo utilizzando il comando passwd nome_utente
  • -r utente di sistema (senza password)
  • -u forza id dell’utente (di default 1001, 1002, 1003, ecc)

Utilizzando semplicemente:

useradd nome_utente

la cartella /home/nome_utente diviene la cartella home dell’utente ma non viene creata quindi o la creiamo manualmente (attribuendo poi i permessi) o usiamo l’opzione -m.

Modificare un utente

Il comando è usermod e come per i gruppi almeno una delle opzioni è obbligatoria. Le opzioni sono le stesse di useradd, si aggiungono solo:

  • -a aggiungi ad un gruppo senza sostituire i preesistenti (da usare assieme a -G)
  • -l rinomina
  • -m cambia di significato per usermod è muovi la home utente (usato insieme a -l)

Quindi se vogliamo aggiungere un utente ad un gruppo usiamo:

usermod -G nome_gruppo -a nome_utente

mentre possiamo usare

usermod -l vecchio_nome nuovo_nome -m -d /home/nuove_nome

Per rinominare l’utente cambiando anche la home directory, con -m spostiamo anche i dati

Cancellare un utente

In questo caso possiamo usare il comando userdel il quale ha due sole opzione degne di nota:

  • -f forza cancellazione dei file
  • -r cancella cartella home

Usato senza parametri cancella l’utente e il gruppo principale (se vuoto)