-Tradizionalmente l'informazione per la gestione di utenti e gruppi veniva
-tenuta tutta nei due file di testo \file{/etc/passwd} ed \file{/etc/group}, e
-tutte le funzioni facevano riferimento ad essi. Oggi la maggior parte delle
-distribuzioni di Linux usa la libreria PAM (sigla che sta \textit{Pluggable
- Authentication Method}) che permette di separare completamente i meccanismi
-di gestione degli utenti (autenticazione, riconoscimento, ecc.) dalle modalità
-in cui i relativi dati vengono mantenuti, per cui pur restando in gran parte
-le stesse\footnote{in genere quello che viene cambiato è l'informazione usata
- per l'autenticazione, che non è più necessariamente una password criptata da
- verificare, ma può assumere le forme più diverse, come impronte digitali,
- chiavi elettroniche, ecc.}, le informazioni non sono più necessariamente
-mantenute in quei file.
-
-In questo paragrafo ci limiteremo comunque alle funzioni classiche per la
-lettura delle informazioni relative a utenti e gruppi previste dallo standard
-POSIX.1, che fanno riferimento a quanto memorizzato nei due file appena
-citati, il cui formato è descritto dalle relative pagine del manuale (cioè
-\cmd{man 5 passwd} e \cmd{man 5 group}).
-
-Per leggere le informazioni relative ad un utente si possono usare due
-funzioni, \funcd{getpwuid} e \funcd{getpwnam}, i cui prototipi sono:
+Tradizionalmente le informazioni utilizzate nella gestione di utenti e gruppi
+(password, corripondenze fra nomi simbolici e user-id, home directory, ecc.)
+venivano registrate all'interno dei due file di testo \file{/etc/passwd} ed
+\file{/etc/group},\footnote{in realtà oltre a questi nelle distribuzioni più
+ recenti è stato introdotto il sistema delle \textit{shadow password} che
+ prevede anche i due file \file{/etc/shadow} e \file{/etc/gshadow}, in cui
+ sono state spostate le informazioni di autenticazione (ed inserite alcune
+ estensioni) per toglierle dagli altri file che devono poter essere letti per
+ poter effettuare l'associazione fra username e \acr{uid}.} il cui formato è
+descritto dalle relative pagine del manuale\footnote{nella quinta sezione,
+ quella dei file di configurazione, occorre cioè usare \cmd{man 5 passwd}
+ dato che altrimenti si avrebbe la pagina di manuale del comando
+ \cmd{passwd}.} e tutte le funzioni che richiedevano l'accesso a queste
+informazione andavano a leggere direttamente il contenuto di questi file.
+
+Col tempo però questa impostazione ha incominciato a mostrare dei limiti: da
+una parte il meccanismo classico di autenticazione è stato ampliato, ed oggi
+la maggior parte delle distribuzioni di GNU/Linux usa la libreria PAM (sigla
+che sta per \textit{Pluggable Authentication Method}) che fornisce una
+interfaccia comune per i processi di autenticazione,\footnote{il
+ \textit{Pluggable Authentication Method} è un sistema modulare, in cui è
+ possibile utilizzare anche più meccanismi insieme, diventa così possibile
+ avere vari sistemi di riconoscimento (biometria, chiavi hardware, ecc.),
+ diversi formati per le password e diversi supporti per le informazioni, il
+ tutto in maniera trasparente per le applicazioni purché per ciascun
+ meccanismo si disponga della opportuna libreria che implementa l'interfaccia
+ di PAM.} svincolando completamente le singole applicazione dai dettagli del
+come questa viene eseguita e di dove vengono mantenuti i dati relativi;
+dall'altra con il diffondersi delle reti la necessità di centralizzare le
+informazioni degli utenti e dei gruppi per insiemi di macchine, in modo da
+mantenere coerenti i dati, ha portato anche alla necessità di poter recuperare
+e memorizzare dette informazioni su supporti diversi, introducendo il sistema
+del \index{\textit{Name~Service~Switch}}\textit{Name Service Switch} che
+tratteremo brevemente più avanti (in sez.~\ref{sec:sock_resolver}) dato che la
+maggior parte delle sua applicazioni sono relative alla risoluzioni di nomi di
+rete.
+
+In questo paragrafo ci limiteremo comunque a trattere le funzioni classiche
+per la lettura delle informazioni relative a utenti e gruppi tralasciando
+completamente quelle relative all'autenticazione.
+% Per questo non tratteremo
+% affatto l'interfaccia di PAM, ma approfondiremo invece il sistema del
+% \textit{Name Service Switch}, un meccanismo messo a disposizione dalle
+% \acr{glibc} per modularizzare l'accesso a tutti i servizi in cui sia
+% necessario trovare una corrispondenza fra un nome ed un numero (od altra
+% informazione) ad esso associato, come appunto, quella fra uno username ed un
+% \acr{uid} o fra un \acr{gid} ed il nome del gruppo corrispondente.
+Le prime funzioni che vedremo sono quelle previste dallo standard POSIX.1;
+queste sono del tutto generiche e si appoggiano direttamente al \textit{Name
+ Service Switch}, per cui sono in grado di ricevere informazioni qualunque
+sia il supporto su cui esse vengono mantenute. Per leggere le informazioni
+relative ad un utente si possono usare due funzioni, \funcd{getpwuid} e
+\funcd{getpwnam}, i cui prototipi sono: