13.3. La Parte Cliente en NIS

Si está familiarizado con escribir o portar aplicaciones de red, puede haberse dado cuenta de que la mayoría de los mapas NIS listados anteriormente corresponden a funciones de biblioteca de la biblioteca C. Por ejemplo, para obtener la información de passwd, generalmente se utilizan las funciones getpwnam y getpwuid, que devuelven la información de cuenta asociada con el nombre de usuario o el ID numérico de usuario, respectivamente. Bajo circunstancias normales, estas funciones realizan la búsqueda requerida en el fichero estándar, /etc/passwd.

Sin embargo, una implementación NIS de estas funciones modifica este comportamiento y realiza una llamada RPC al servidor NIS, que busca el nombre de usuario o el ID de usuario. Esto ocurre transparentemente para la aplicación. La función puede tratar a los datos NIS como si hubiesen sido añadidos al fichero original /etc/passwd por lo que ambos juegos de información están disponibles para la aplicación, o como si lo hubiese reemplazado completamente, por lo que la información del passwd local es ignorada y sólo se utilizan los datos de NIS.

En las implementaciones tradicionales de NIS había ciertas convenciones sobre qué mapas eran reemplazados y cuáles se añadían a la información original. Algunos, como los mapas passwd, requerían de modificaciones extrañas en el fichero passwd que, si se hacían incorrectamente, abrían agujeros de seguridad. Para evitar estos riesgos, NYS y la libc de GNU utilizan un esquema de configuración general que determina si un juego particular de funciones de cliente debe utilizar los ficheros originales, NIS, o NIS+, y en qué orden. Este esquema será descrito más adelante en este capítulo.