Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Клиентская сторона NIS

Если Вы знакомы с написанием или переносом сетевых прикладных программ, Вы можете обратить внимание, что большинство карт NIS соответствует библиотечным функциям в библиотеке C lib. Например, чтобы получить passwd, Вы обычно используете функции getpwnam и getpwuid, которые возвращают информацию, связанную с данным логином или цифровым идентификатором пользователя (user ID), соответственно. При нормальных обстоятельствах эти функции выполняют поисковый запрос на стандартном файле, типа /etc/passwd.

NIS-реализация этих функций изменяет это поведение и использует обращение RPC к серверу NIS, который ищет логин или user ID. Функция может обрабатывать NIS-данные, как если бы они были добавлены к оригинальному файлу passwd, так что оба набора информации доступны прикладной программе и будут использованы. Есть второй вариант: информация в локальном passwd игнорируется вообще, и используются только NIS-данные.

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