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