Introduzione

Esistono diversi schemi di autenticazione che possono essere utilizzati su sistemi Linux. Lo schema più comunemente usato è quello di eseguire l'autenticazione con i file /etc/passwd e /etc/shadow.

/etc/passwd è un semplice database basato su testo che contiene informazioni per tutti gli account utente sul sistema. È di proprietà di root e ha 644 autorizzazioni. Il file può essere modificato solo da utenti root o utenti con privilegi sudo e leggibile da tutti gli utenti del sistema.

La modifica manuale del file /etc/passwd deve essere evitata a meno che non si sappia cosa si sta facendo. Utilizzare sempre un comando progettato per lo scopo. Ad esempio, per modificare un account utente, utilizzare il comando usermod e per aggiungere un nuovo account utente utilizzare il comando useradd.

Formato del file /etc/passwd

Il file /etc/passwd è un file di testo con una voce per riga, che rappresenta un account utente. Per visualizzare il contenuto del file, utilizzare un editor di testo o un comando come cat:

cat /etc/passwd

Di solito, la prima riga descrive l'utente root, seguito dal sistema e dai normali account utente. Le nuove voci vengono aggiunte alla fine del file.

Ogni riga del file /etc/passwd contiene sette campi separati da virgola:

mark:x:1001:1001:mark,,,:/home/mark:/bin/bash
[--] - [--] [--] [-----] [--------] [--------]
|    |   |    |     |         |        |
|    |   |    |     |         |        +-> 7. Login shell
|    |   |    |     |         +----------> 6. Home directory
|    |   |    |     +--------------------> 5. GECOS
|    |   |    +--------------------------> 4. GID
|    |   +-------------------------------> 3. UID
|    +-----------------------------------> 2. Password
+----------------------------------------> 1. Username
  1. Username. La stringa digitata quando si accede al sistema. Ogni nome utente deve essere una stringa univoca sulla macchina. La lunghezza massima del nome utente è limitata a 32 caratteri.
  2. Password. Nei sistemi Linux precedenti, la password crittografata dell'utente era archiviata nel file /etc/passwd. Sulla maggior parte dei sistemi moderni, questo campo è impostato su x e la password dell'utente è memorizzata nel file /etc/shadow.
  3. UID. L'identificatore dell'utente è un numero assegnato a ciascun utente. Viene utilizzato dal sistema operativo per fare riferimento a un utente.
  4. GID. Il numero identificativo del gruppo dell'utente, riferito al gruppo primario dell'utente. Quando un utente crea un file, il gruppo del file viene impostato su questo gruppo. In genere, il nome del gruppo è uguale al nome dell'utente. I gruppi secondari dell'utente sono elencati nel file /etc/groups.
  5. GECOS o il nome completo dell'utente. Questo campo contiene un elenco di valori separati da virgola con le seguenti informazioni:
  • Nome completo dell'utente o nome dell'applicazione.
  • Numero di Camera.
  • Numero di telefono di lavoro.
  • Numero di telefono fisso.
  • Altre informazioni di contatto.
  1. Home directory. Il percorso assoluto della home directory dell'utente. Contiene i file e le configurazioni dell'utente. Per impostazione predefinita, le home directory degli utenti prendono il nome dal nome dell'utente e vengono create nella directory /home.
  2. Shell di accesso (Login shell). Il percorso assoluto della shell di accesso dell'utente. Questa è la shell che viene avviata quando l'utente accede al sistema. Sulla maggior parte delle distribuzioni Linux, la shell di accesso predefinita è Bash.

Conclusione

Il file /etc/passwd tiene traccia di tutti gli utenti sul sistema.