2013-09-26 5 views
1

Я хотел бы написать сценарий оболочки, чтобы сделать следующее: посоветуете, как это сделать? очень спасибоДата создания учетной записи пользователя в LDAP

  1. сервер Connect LDAP (Id: пользователь, пароль: пропуск)
  2. проверить поле user_account_create_date на сервере LDAP, формат данных в этой области является ABC20130922 (22 сентября 2013)
  3. найти запись в этой области, чтобы проверить последние 8 цифр,

псевдокод:

if the date is within 7 days: # account is created within 7 days 
     then do 
      ... 
     else do 
      ... 

У меня есть сценарий, как показано ниже, которые соединяют LDAP, и проверьте, если учетная запись пользователя создается в течение 7 дней (сценарий еще не завершен)

timestamp = date --date="-7 days" +%Y%m%d%k%m%SZ 

ldapsearch -h 192.168.1.100 -p 389 -D cn=admin,o=services -w pass -x "(&(objectclass=*)(createTimestamp>=$timestamp))" 

then 

То, что я надеюсь сделать сейчас, чтобы изменить приведенный выше сценарий так что createTimestamp получите строку даты создания, которую можно использовать для сравнения с меткой времени.

ответ

0

Что-то близко к этому должно работать:

ndays=7 
timestamp=`date --date="-$ndays days" +'%Y%m%d'"100000Z"` 

ldapsearch -x -LLL -h yourhost.yourdoamin.com -p 389 -b "ou=people,dc=yourdomain,dc=com" -D cn=admin,....,dc=yourdomain,dc=com -w yourpassword "(&(objectclass=inetorgperson)(modifytimestamp>=$timestamp))" modifytimestamp 

Я использовал modifyTimeStamp для тестирования, как никто не был создан в последнее время на моей домашней системе.

-Джим

+0

thx для ответа, что такое изменениеTimeStamp? это поле в LDAP? – user2805388

+0

Атрибут LDAP, который согласно RFC 4512, «Сервера ДОЛЖНЫ поддерживать атрибуты« creatorsName »,« createTimestamp »,« modifiersName »и« modifyTimestamp »для всех записей DIT». – jwilleke

+0

Он не хочет времени модификации, ему нужно время создания. – EJP

0

Убедитесь, что метка имеет правильный синтаксис (обобщенное время). При использовании значения в утверждении (filter) значение должно быть синтаксисом атрибута. Кроме того, компонент objectClass=* фильтра не нужен: все записи имеют как минимум один номер objectClass.

Смежные вопросы