Selam,
2015-02-03 16:38 GMT+02:00 Salih PALA <[email protected]>:
> Arkadaşlar Selam,
>
> dn: [email protected],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: [email protected]
> mailQuotaSize: 500000000
> mailQuotaCount: 20000
> cn: test
> sn: Account
> mail: [email protected]
> mailMessageStore: /maildizini/kullanıcıpati
> uid: [email protected]
>
>
> 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: [email protected]
> mailForwardingAddress: [email protected]
> mailForwardingAddress: [email protected]
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
[email protected]
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