Home directory
# Home directory

Una home directory, in informatica, è una directory utilizzata da un sistema operativo destinata a contenere i file personali di uno specifico utente del sistema, assegnata all'utente dall'amministratore di sistema o dal sistema operativo stesso.

## Caratteristiche

La separazione dei dati degli utenti dai dati del sistema evita ridondanze e conflitti e facilita alcune operazioni come il backup. Dal punto di vista della sicurezza la divisione dei dati di ciascun utente da quelli di altri utenti e dai dati di sistema limita ulteriormente la possibilità di un utente di arrecare danni ad altri utenti sullo stesso sistema: è da notare che spesso virus, cavalli di Troia e worm vengono eseguiti con l'identità ed i privilegi dello specifico utente, e quindi tale separazione può ridurre l'entità di eventuali danni ai soli dati dell'utente coinvolto, purché l'utente non utilizzi il sistema come amministratore di sistema.

Oltre ai file di dati, i programmi spesso collocano nelle home directory dei loro utilizzatori i file che specificano la configurazione per il particolare utente.

## Sistemi Windows

Su sistemi Microsoft Windows con supporto per la multiutenza (Windows NT e successivi) la home directory di un utente è:

* C:\winnt\profiles\nome_utente in sistemi Windows NT;
* C:\Documents and Settings\nome_utente in sistemi Windows 2000, XP e Server 2003;
* C:\Users\nome_utente in sistemi Windows Vista, Server 2008, 7, 8, 8.1, 10

Contiene inoltre le sottocartelle "Desktop" e "Documents" (o "Documenti nella versione italiana), oltre ad un insieme di altre cartelle e file di configurazione relative all'utente stesso.

## Sistemi Unix e Unix-like

Nei sistemi operativi Unix e Unix-like le home directory sono assegnate dall'amministratore di sistema (root), all'atto della creazione degli account per i nuovi utenti.

In molti di questi sistemi operativi, il comportamento predefinito dei comandi che aggiungono account al sistema (ad esempio useradd) prevede che la home directory di un utente sia una subdirectory della directory /home e che abbia un nome uguale a quello del nome utente (ad esempio gli utenti alice, bruno e carla avrebbero come home directory rispettivamente /home/alice, /home/bruno e /home/carla).

Fa eccezione a questa regola generale l'utente root, la cui home directory può essere la directory radice ("/") oppure una directory separata da quelle degli altri utenti (ad esempio /root sui sistemi GNU/Linux).

Altre eccezioni si hanno con i sistemi Solaris, dove le home directory degli utenti ordinari sono normalmente create all'interno della directory /export/home, ed i sistemi macOS dove sono create all'interno della directory /Users.

I comandi che creano account prevedono la possibilità di inizializzare il contenuto delle home directory dei nuovi utenti a partire da un modello (detto skeleton o scheletro), che normalmente è una copia del contenuto della directory /etc/skel, ma che ad esempio in macOS è il contenuto di una delle directory in /System/Library/User Template che viene scelta in base alla localizzazione (per la lingua italiana è /System/Library/User Template/Italian.lproj, che contiene ad esempio le subdirectory Documenti, Immagini, Libreria, etc.).

L'associazione tra nome utente e home directory è normalmente definita nel file /etc/passwd, ma può ad esempio anche esistere in un server NIS+, o in un servizio di directory accessibile via LDAP.

La home directory è anche la directory corrente del programma avviato subito dopo l'operazione di login testuale, tipicamente una shell testuale come Bash o la Korn shell.

