Давайте я Вам немножко расскажу о том, как работает идентификация/аутентификация в Linux и причём тут LDAP.
У каждого объекта в системе (процесса, файла) есть владелец, у которого есть числовой идентификатор и привязанное к этому идентификатору символьное имя. Чтобы понять, какое имя привязано к идентификатору, в Linux (и некоторых других системах) существуют системные вызовы типа getent. С помощью расширяемой библиотеки NSS (name service switch) вызовы getent могут получить сведения об именах (например, пользователей) из различных источников: какие дополнительные nss_* библиотеки установлены и настроены в системе, из таких источников может быть получена информация об именах. Чтобы системные вызовы знали, какие источники доступны в системе и в каком порядке их использовать, существует файл настройки NSS /etc/nsswitch.conf .
То, что Вы называете локальными пользователями, по сути -- это пользователи, сведения о которых имеются в "плоских" текстовых файлах /etc/passwd, /etc/shadow, /etc/group . Вызовы getent воспринимают эти сведения как источник данных о пользователях только потому, что в системе по умолчанию присутствует библиотека nss_files и использование этой библиотеки прописано в /etc/nsswitch.conf. Именно эта библиотека парсит указанные "плоские" файлы, и на запрос "какое имя соответствует идентификатору NNN" выдаёт имя, если знает. Если в /etc/nsswitch.conf в качестве источника данных для passwd не будет указан files, то система ничего не будет знать о таких "локальных пользователях".
Кроме "плоских" файлов в качестве источников информации о пользователях в системе могут выступать всевозможные базы данных, сетевые службы, да вообще всё что угодно. Если в системе присутствует библиотека, умеющая правильно обработать вызов getent, и настройки этой библиотеки позволяют подключаться к источнику данных о пользователях (назовём его базой данных), то пользователь из такого источника сразу же становится "локальным". То есть с точки зрения системы нет никакой разницы, хранятся ли сведения о пользователя в /etc/passwd или где-то в доступной по сети базе данных -- это совершенно одинаковые пользователи.
Так вот LDAP -- это всего-лишь такая сетевая база данных, не больше и не меньше. И если в системе Linux установлена библиотека, к примеру, nss_ldap, которая способна принимать вызовы getent, подключаться к LDAP-серверу, получать оттуда информацию о пользователе и отдавать её в формализованном виде обратно вызову getent, то сервер LDAP может служить информацией о пользователях наравне (или вместо) "плоских" системных файлов.
Так что сервер LDAP ничего не будет "понимать" и "сопоставлять". Его задача простая: хранить данные и выдавать их в ответ на запросы типа ldapsearch (а точнее на запросы протокола LDAP). Функционал базы данных -- это всё, что вы можете получить от LDAP-сервера. "Понимают" и "сопоставляют" системные библиотеки.
Ситуация с аутентификацией практически та же: расширяемая библиотека PAM (pluggable authentication modules) принимает запросы аутентификации и с помощью библиотек pam_* обращается к различным источникам и принимает на основе ответа от этих библиотек решение, прошёл пользователь аутентификацию или нет. Библиотека pam_unix принимает решение об аутентификации пользователя на основе "плоских" системных файлов, а, например, библиотека pam_ldap может принять такое решение на основании данных из каталога LDAP. Опять же, с точки зрения Linux разницы между пользователями из разных источников нет никакой.
Здесь я приводил описание нескольких системных библиотек, которые могут брать информацию для NSS и PAM из LDAP.
Почему администраторы Linux используют LDAP? Потому что это удобно. В сети есть единое хранилище данных о пользователях, к которому могут подключаться системные библиотеки с любого компьютера в сети и брать из этого хранилища информацию для идентификации/аутентификации пользователя. На всех компьютерах в сети информация будет одинакова.
Тут можно провести аналогию с AD (в принципе, поскольку в качестве хранилища данных о пользователях в AD исползуется каталог LDAP, то аналогия, практически прямая =) ). Итак, в AD есть централизованный источник информации о пользователях, и если компьютер знает об этом источнике (введён в домен), то пользователи из централизованного источника могут пройти аутентификацию и получить права доступа на ресурсы этого компьютера и сетевые ресурсы других компьютеров от своего имени (на всех компьютерах у этого пользователя будет один и тот же идентификатор).
В связке Linux+LDAP ситуация аналогичная: в сети существует каталог LDAP с учётками пользователей, и если сетевой компьютер знает об этом источнике (на нём настроены соответствующие библиотеки), то пользователь, сведения о котором есть в каталоге LDAP, может пройти аутентификацию и получить права доступа на ресурсы этого компьютера и сетевые ресурсы других компьютеров от своего имени (на всех компьютерах у этого пользователя будет один и тот же идентификатор).
То есть если вы заведёте учётку пользователя в каталоге LDAP и на всех компьютерах одинаково настроите библиотеки типа nss_ldap и pam_ldap, то этот пользователь будет сразу на всех компьютерах и ничего не надо будет сопоставлять.
Кстати, Linux-компьютер вполне реально "ввести" в домен AD (с помощью библиотек nss_sss и pam_sss), то есть доменные пользователи AD смогут пройти аутентификацию и получить права доступа к ресурсам на основании данных из AD.
В примере по ссылке, которую Вы привели в прошлом посте, решается частная NFS-задача "сопоставления" двух учёток пользователей с разными идентификаторами. Причём решается она костыльно, с помощью частных настроек NFS. Лучше так не делать, если можно сразу настроить идентификацию пользователей из централизованного источника: идентификаторы на всех компьютерах будут одинаковы и проблем не возникнет.
Егор