Почему 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 является взаимоисключающим.

Другие вопросы по тегам