Почему LDAP не должен поддерживать поиск неравенства в shadowExpire?
Когда я пытаюсь найти на моем сервере OpenLDAP 2.4.42 (shadowExpire<=18074) Я не получаю результатов. Тем не менее, поиск (shadowExpire=12671) дает несколько результатов.
Моя конечная цель - периодически обновлять карту Postfix для check_recipient_access отклонить почту на просроченные аккаунты.
Глядя на сервер /etc/ldap/schema/nis.schema, Понятно:
attributetype ( 1.3.6.1.1.1.1.10 NAME 'shadowExpire'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
Это согласуется с Разделом 3 RFC 2307, в котором указано:
( nisSchema.1.10 NAME 'shadowExpire'
EQUALITY integerMatch
SYNTAX 'INTEGER' SINGLE-VALUE )
Оба из них предполагают, что shadowExpire поддерживает только поиск на равенство.
Однако RFC 2307bis имеет:
( 1.3.6.1.1.1.1.10 NAME 'shadowExpire'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
SINGLE-VALUE )
… у которого есть ORDERING integerOrderingMatch, позволяя поиску неравенства работать.
Могу ли я взломать мой сервер nis.schema включать ORDERING integerOrderingMatch? Основное представление все равно будет INTEGER так оно и должно быть безвредным, верно? (Несмотря на предупреждение в Руководстве администратора OpenLDAP, в котором говорится: "Вы не должны изменять какие-либо элементы схемы, определенные в предоставленных файлах.)
1 ответ
Вы правильно проанализировали отсутствующее правило соответствия порядка.
Однако вы не должны изменять файлы схемы, поставляемые с OpenLDAP, как nis.schema, Но вы можете использовать альтернативный файл схемы rfc2307bis.schema вместо. Некоторые дистрибутивы Linux уже поставляют этот файл.
Обратите внимание, что использование nis.schema а также rfc2307bis.schema является взаимоисключающим.