Product SiteDocumentation Site

8.4. Database di utenti e gruppi

La lista degli utenti è generalmente conservata nel file /etc/passwd, mentre il file /etc/shadow conserva le password cifrate. Entrambi sono file di testo, in un formato relativamente semplice, che può essere letto e modificato con un editor di testo. Ogni utente è elencato su una riga con diversi campi separati dai due punti («:»).

8.4.1. Lista utenti: /etc/passwd

Questa è la lista dei campi nel file /etc/passwd:
  • login, per esempio rhertzog;
  • password: è una password cifrata con una funzione a senso unico (crypt), basandosi su DES, MD5, SHA-256 o SHA-512. Il valore speciale "x" indica che la password cifrata è conservata in /etc/shadow;
  • uid: numero univoco che identifica ciascun utente;
  • gid: numero univoco che identifica il gruppo principale dell'utente (Debian crea in via predefinita un gruppo specifico per ogni utente);
  • GECOS: campo dati che normalmente contiene il nome completo dell'utente;
  • directory di login, assegnata all'utente per conservare i propri file personali (la variabile d'ambiente $HOME punta generalmente qui);
  • programma eseguito dopo il login. Questo è generalmente un interprete dei comandi (shell), che dà all'utente carta bianca. Se viene specificato /bin/false (il quale non fa nulla e ritorna immediatamente il controllo), l'utente non può eseguire il login.

8.4.2. Il file delle password nascoste e cifrate: /etc/shadow

Il file /etc/shadow contiene i seguenti campi:
  • login;
  • password cifrata;
  • diversi campi gestiscono la scadenza della password.

8.4.3. Modificare un account o password esistente

I seguenti comandi consentono la modifica delle informazioni conservate in campi specifici dei database utenti: passwd permette ad un utente normale di modificare la propria password, cosa che comporta l'aggiornamento del file /etc/shadow. chfn (CHange Full Name), riservato per il super-utente (root), modifica il campo GECOS. chsh (CHange SHell) consente all'utente di cambiare la propria shell di login, tuttavia le scelte disponibili sono limitate a quelle elencate in /etc/shells: l'amministratore, d'altra parte, non è soggetto a questa restrizione e può impostare la shell a qualsiasi programma scelga.
Infine il comando chage (CHange AGE) consente all'amministratore di cambiare le impostazioni di scadenza della password (l'opzione -l utente elenca le impostazioni attuali). È possibile inoltre forzare la scandenza di una password utilizzando il comando passwd -e utente, il quale richiede all'utente di cambiare la password al prossimo accesso.

8.4.4. Disabilitare un account

Può rendersi necessario «disabilitare un account» (tagliare fuori un utente) come misura disciplinare, per eseguire delle verifiche o semplicemente in caso di una prolungata o definitiva assenza dell'utente. Un account disabilitato significa che l'utente non potrà fare login o guadagnare accesso alla macchina. L'account rimane intatto nella macchina e né i file né altri dati sono cancellati: sono semplicemente inaccessibili. Questo si ottiene usando il comando passwd -l utente (l, per «lock»: blocco). Per riabilitare l'account si utilizza l'opzione -u (u, per «unlock»: sblocco).

8.4.5. Lista dei gruppi: /etc/group

I gruppi sono elencati nel file /etc/group, un semplice database testuale in un formato simile a quello del file /etc/passwd, con i seguenti campi:
  • nome gruppo;
  • password (opzionale): Questa è utilizzata unicamente per aggiungersi ad un gruppo quando non si è un utente abituale (con i comandi newgrp o sg, si veda il riquadro FONDAMENTALI Lavorare con diversi gruppi);
  • gid: numero univoco di identificazione di un gruppo;
  • lista di membri: lista di nomi degli utenti che sono membri del gruppo, separati da virgole.
I comandi addgroup e delgroup aggiungono o rimuovono rispettivamente un gruppo. Il comando groupmod modifica le informazioni di un gruppo (il suo gid o identificativo). Il comando passwd -g gruppo cambia la password per il gruppo mentre il comando passwd -r -g gruppo la cancella.