Конфігураційний файл системних баз даних та перемикача сервісів імен - Документація по Linux
НАЗВАnsswitch.conf - конфігураційний файл системних баз даних і перемикача сервісів імен
ОПИСБагато функцій у бібіліотеках C повинні бути налаштовані так, щоб без збоїв працювати в локальному середовищі. Раніше це робилося за допомогою відповідних файлів (наприклад, `/etc/passwd'), але потім з'явилися інші сервіси імен (такі, як Network Information Service (NIS) і Domain Name Service (DNS)), що стали популярними і включені до бібліотеки C.
У NSS підтримуються такі бази даних:
aliases (поштові аліаси (псевдоніми), що використовуються send- mail(8), які в даний час ігноруються);
group (групи користувачів, з якими працює функція getgrent(3));
netgroup (загальномережевий список машин і користувачів, використовуваний визначення прав доступу до системе. Бібліотеки C до glibc 2.1 підтримували ці групи лише NIS);
passwd (паролі користувачів, оброблювані функцією get-pwent(3));
protocols (мережні протоколи, використовувані функцією getpro- toent(3));
publickey (відкриті та закриті ключі для Secure_RPC, використовуються NFS та NIS+);
rpc (імена та номери віддалених викликів процедур RPC, використовувані функцією getrpcbyname(3) та їй подібними);
services (мережеві служби, що працюють з функцією getser- vent(3));
shadow (приховані (shadow) паролі користувачів, що обробляються функцією getspnam(3)).
Файл /etc/nsswitch.conf може виглядати приблизно так (такий вміст використовується і за умовчанням, якщо файл /etc/nsswitch.conf відсутній):
passwd: compat group:compat shadow: compat
hosts: dns [!UNAVAIL=return] files networks: nis [NOTFOUND=return] files ethers: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc : nis [NOTFOUND=return] files services: nis [NOTFOUND=return] files
Перша колонка – це назва бази даних. Решта рядка визначає процес пошуку даних. Цей процес можна встановити для кожної бази даних окремо.
Опис конфігурації кожної бази даних може містити два типи елементів: * Назва сервісу, наприклад, `files', `db' або `nis'. * Відповідь на результат роботи сервісу, наприклад, `[NOT- FOUND=return]'.
У libc5 з NYS дозволені такі назви сервісів: files, nis і nisplus. Для імен машин можна використовувати сервіс `dns', для passwd і group - `compat' (але не для shadow).
У glibc, у Вас повинен бути файл /lib/libnss_СЕРВІС.so.X для кожного СЕРВІСУ, з яким Ви працюєте. Ви побачите `files', `db', `nis' та `nisplus'. Для імен машин можна використовувати сервіс `dns', для passwd, group і shadow - `compat'. Ці послуги не будуть використовуватися в libc5 з NYS. Номер версії X дорівнює 1 glibc 2.0 і 2 glibc 2.1.
Другий варіант елемента в описі конфігурації дозволяє більш гнучко контролювати процес пошуку даних. Елементи дій поміщаються між двома назвами сервісів і укладаються в квадратні дужки. Загальна форма елемента дій:
СТАТУС => success notfound unavail tryagain ДІЯ => return continue
Регістр написання ключових слів неважливий. СТАТУС - це результат виклику відповідної функції заданого сервісу:
success Помилки не відбулося, і повернуто потрібне значення. Стандартна дія дляцього статусу – `return'.
notfound Пошук проведено успішно, але шукане значення не знайдено. Стандартна дія – `continue'.
unavail Сервіс недоступний. Це означає, що файл не існує або, у разі DNS, сервер недоступний або не дозволяє надсилати запити. Стандартна дія - `continue'.
tryagain Сервіс тимчасово недоступний. Це означає, що файл заблокований або сервер не може створити з'єднання. Стандартна дія – `continue'.
Робота з синтаксисом +/- (режим compat) libc5 в Linux без NYS не має NSS, але має просту вбудовану форму контролю роботи користувача. У файлі /etc/passwd можуть бути рядки у формі +користувач або +@мережева_група (включити заданого користувача в карту NIS passwd), -user або -@netgroup (виключити заданого користувача) і + (включити всіх користувачів, крім виключених з карти NIS passwd). Багато хто поміщає один + наприкінці файлу /etc/passwd; у цьому випадку NSS пропонує швидку альтернативу (`passwd: files nis'), якій не потрібен + у файлах /etc/passwd, /etc/group і /etc/shadow. Якщо цього недостатньо, то сервіс `com-pat' NSS повністю підтримує семантику +/-. За умовчанням джерело дорівнює `nis', але це можна змінити, задавши `nisplus' як сервіс псевдобаз даних passwd_compat, group_compat і shadow_compat. Псевдобази доступні лише у GNU-бібліотеці C.