11.2. ¿Qué es NSS?
NSS (Name Service Switch) es un servicio que permite la resolución de nombres de usuario y contraseñas (o grupos) mediante el acceso a diferentes orígenes de información. En condiciones normales, esta información se encuentra en los archivos locales del sistema operativo, en concreto en /etc/passwd, /etc/shadow y /etc/group, pero puede proceder de otras fuentes, como DNS (Domain Name System), NIS (Network Information Service), LDAP (Lightweight Directory Access Protocol) o WINS (Windows Internet Name Service).
Como curiosidad, podemos decir que la versión de NSS para GNU/Linux está reescrita desde cero, sin tomar ni una línea de código de la versión de Sun Microsystems
Los primeros sistemas operativos de tipo Unix accedían directamente a los archivos de configuración o código que dependía de la forma en que se producía la autenticación. Esto hacía que cualquier cambio en el modo de autenticación obligara a cambiar el sistema operativo.
Ultrix fue el primero en ofrecer una funcionalidad muy parecida a NSS, pero fue Sun Microsystems el primero en desarrollar NSS de una forma muy parecida a como lo conocemos en la actualidad. Por lo tanto, el primer sistema operativo que incorporó NSS fue Solaris.
Poco después, se portó a diferentes sistemas operativos, como AIX, NetBSD, FreeBSD o GNU/Linux.
El objetivo de NSS es que los programas o los comandos del sistema operativo puedan manejar información administrativa relacionada con los usuarios, las contraseñas y los grupos (incluidos aspectos como la caducidad de una contraseña o su nivel de complejidad) sin tener que conocer el lugar donde se encuentran almacenados.