Selam,

Desteğin için teşekkür ederim @Selçuk, scriptini denememe gerek kalmadan
sorunu Ömer hocamın desteği ile çözdüm. Fakat en kısa sürede kendi test
ortamımda scripti deneyeceğim. Belki biraz daha geliştirilmiş hali ile bu
tarz sorguları otomatize edebilirim.

Şayet günün birinde başka bir arkadaşımıza lazım olursa çözümü aşağıdaki
şekilde,

ldapsearch -h ipaddress  -D "cn=admin,dc=example,dc=com" -w sifre -b
"ou=xmailgrubu,o=mail,dc=example,dc=com"  '(&(mail=*@*)
(mailForwardingAddress=*@*))'  mail mailForwardingAddress

Attribute'lerin spesifik filter'ı ile ilgili linkler,

https://dirteam.com/tomek/2005/11/21/_5b00_r_5d00_-using-ldap-search-filter-to-query-attributes-without-value/

http://stackoverflow.com/questions/14441529/ldap-filter-for-blank-empty-attribute



4 Şubat 2015 22:16 tarihinde Selçuk Mıynat <selcukmiy...@gmail.com> yazdı:

> Selam,
>
> 2015-02-03 16:38 GMT+02:00 Salih PALA <bilisimsys...@gmail.com>:
> > Arkadaşlar Selam,
> >
> > dn: uid=t...@example.com,ou=example.com
> ,ou=mailgrubu,o=mail,dc=server,dc=com
> > objectClass: top
> > objectClass: person
> > objectClass: inetOrgPerson
> > objectClass: qmailUser
> > mailHost: mail.server.com
> > qmailDotMode: ldapwithprog
> > accountStatus: active
> > deliveryMode: nolocal
> > mailForwardingAddress: den...@farklidomain.com
> > mailQuotaSize: 500000000
> > mailQuotaCount: 20000
> > cn: test
> > sn: Account
> > mail: t...@example.com
> > mailMessageStore: /maildizini/kullanıcıpati
> > uid: t...@example.com
> >
> >
> > Ben tüm kullanıcıları listeleyerek bu kullanıcılar içinden yalnızca
> > "mailForwardingAddress" attribute'ü kullanan kullanıcıları ve
> yönlendirilen
> > adresleri görmek istiyorum.
> >
> > Mail: acco...@example.com
> > mailForwardingAddress: a...@deneme.com
> > mailForwardingAddress: a...@deneme.com
>
> LDAP üzerinde bu tür işlemler için küçük bir script yazmayı tercih
> ediyorum ben. ldapsearch vs. ile de yapılabilir muhtemelen ama biraz
> daha çaba gerektirir sanıyorum.
>
> Script şöyle bir şey olabilir: (Test etmedim, ufak değişiklikler
> gerekebilir.)
>
> <----------   ldap_search.pl   ---------->
>
> #!/usr/bin/perl
>
> use strict;
> use warnings;
> use feature qw(say);
>
> use Net::LDAP;
> use Net::LDAP::Entry;
>
> /* Değişkenler */
> my $domain = "example.com";
> my $binddn = "uid=admin,cn=admins,dc=example,dc=com"
> my $pasword = "pass.word"
> my $address = "127.0.0.1"
>
> my $ldap = Net::LDAP->new("$address") or die "$@";
>
> my $mesg = $ldap->bind("$binddn", password => "$password");
> $mesg = $ldap->search(base =>
> "ou=$domain,ou=mailgrubu,o=mail,dc=example,dc=com", filter =>
> "(objectClass=qmailUser)");
> $mesg->code && $mesg->error;
> my @entries = $mesg->entries;
> foreach my $entry (@entries) {
>         my $mail = $entry->get_value('mail');
>         my @mailForwardingAddress =
> $entry->get_value('mailForwardingAddress');
>         if (@mailForwardingAddress) {
>                 say $mail;
>                 say @mailForwardingAddress;
>                 say "";
>         }
> }
>
> $mesg = $ldap->unbind;
>
> exit 0;
> <-------------------------------------------
> ------------------------------------------------------------------->
>
>
> > Bu arada her ldap sorgusu sonucu aldığım dökümde ilgili attribute'lerin
> sıralamaları farklı
> > geliyor. Yani hepsinin belirli bir sıralaması bulunmuyor.
>
> LDAP protokolünde sonuçların sıralaması ile ilgili bir tanımlama
> bulunmuyor varsayılan olarak. Bunun için "server-side sort extension"
> özelliğinin desteklenmesi gerekiyor sunucu tarafında. ldapsearch'ün -S
> parametresi incelenebilir bunun için.
>
> En son baktığımda, Ruby'de bu özelliği destekleyen bir kütüphane
> yoktu, şu anki durumu bilemiyorum. Python kütüphaneleri hakkında bir
> bilgim yok. Yine ne varsa Perl'de var :)
>
> Kolay gelsin.
>
> --
> Selçuk Mıynat
> _______________________________________________
> Linux-sunucu E-Posta Listesi
> Linux-sunucu@liste.linux.org.tr
>
> Liste kurallarını http://liste.linux.org.tr/kurallar.php  bağlantısından
> okuyabilirsiniz;
>
> Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
> e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
> dakika içinde üyeliğinizi sonlandırabilirsiniz.
> https://liste.linux.org.tr/mailman/listinfo/linux-sunucu
>



-- 
İyi çalışmalar.
_______________________________________________
Linux-sunucu E-Posta Listesi
Linux-sunucu@liste.linux.org.tr

Liste kurallarını http://liste.linux.org.tr/kurallar.php  bağlantısından 
okuyabilirsiniz;

Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen 
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1 
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu

Cevap