Caro Paulo,
De acordo com a RFC2254 o 'filtro' que você deveria informar seria (shadowExpire>=15098).
O atributo 'shadowExpire' é definido dentro do arquivo nis.schema e tem como default a cláusula 'integerMatch' para EQUALITY, ou seja, somente suporta 'filtertype = equal / approx / greater / less' que são definidos como:
equal = "="
approx = "~="
greater = ">="
less = "<="
Mas (tinha que ter o mas né), o atributo 'shadowExpire' é (normalmente) definido pelo 'schema' nis (/etc/ldap/schema/nis.schema) conforme trecho abaixo:
# builtin
#attributetype ( 1.3.6.1.1.1.1.0 NAME 'uidNumber'
# DESC 'An integer uniquely identifying a user in an administrative domain'
# EQUALITY integerMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
# builtin
#attributetype ( 1.3.6.1.1.1.1.1 NAME 'gidNumber'
# DESC 'An integer uniquely identifying a group in an administrative domain'
# EQUALITY integerMatch
# SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
.
.
.
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 )
ou seja, os atributos 'uidNumber' e 'gidNumber' são construídos em momento de compilação. Portanto não podem ser alterados no nis.schema diretamente.
E a cláusula 'EQUALITY integerMatch' somente permite filtros por 'igualdade'.
A pergunta que não quer calar é: Dá para alterar para possibilitar pesquisa de 'inteiros' por '>=' e '<=' ?
Resposta: O OpenLDAP ainda não implementa 'integerOrderingMatch'.
Referências: