Работа с NIS на клиентской стороне

Для разработчиков и системных администраторов, знакомых с программированием и интеграцией сетевых приложений, становится очевидным, что многие отображения NIS, упомянутые ранее, коррелируют с функциями библиотеки C. Возьмем в качестве примера работу с данными аккаунта пользователя: для доступа к информации о пароле обычно используются функции getpwnam(3) и getpwuid(3). Эти функции возвращают данные аккаунта, связанные с конкретным именем пользователя или его UID (числовым идентификатором). При стандартной конфигурации эти запросы обращаются к локальному файлу, такому как /etc/passwd.

Однако в контексте NIS реализации эти функции могут быть адаптированы. Вместо того чтобы обращаться к локальному файлу, они выполняют запрос к NIS серверу посредством RPC, чтобы получить данные о пользователе. Самое интересное в этом процессе заключается в том, что приложение не осведомлено об этом изменении исходного процесса запроса. Возможно также "конкатенировать" (добавлять) данные из NIS к локальной базе или полностью "заменять" локальные данные данными из NIS. Стоит подчеркнуть, что реальные файлы в системе остаются без изменений, но для приложения данные выглядят, как будто файл был изменен или дополнен.

В классических реализациях NIS существуют определенные стандарты, определяющие, какие отображения будут заменены, а какие дополнены. Некоторые реализации, в особенности для отображений типа passwd, требуют специфических изменений в файле passwd, которые при неправильной настройке могут создать угрозы безопасности. Для того чтобы избежать подобных ошибок, NYS применяет универсальную конфигурационную схему, которая четко указывает, какой исходный ресурс будет использоваться клиентскими функциями и в какой последовательности.