Инсталирован SASL 2.1.12, Cyrus 2.1.12 и Berkeley 3.3. запущен masterSASL
env CPPFLAGS="-I/usr/local/BerkeleyDB.3.3/include" LDFLAGS="-L/usr/local/BerkeleyDB.3.3/lib -R/usr/local/BerkeleyDB.3.3/lib" ./configure --prefix=/usr/local/sasl2 --enable-saslauthd --with-pwcheck=/var/pwcheck --disable-checkapop --disable-krb4 --disable-gssapi --with-openssl=/usr/local/ssl --enable-plain --enable-login --with-dblib=berkeley --disable-optCyrus Imap
./configure --prefix=/usr/local/cyrus --with-cyrus-prefix=/usr/local/cyrus --with-auth=unix --with-openssl=/usr/local/ssl --with-sasl=/usr/local/sasl2 -with-dbdir=/usr/local/BerkeleyDB.3.3 --with-bdb-libdir=/usr/local/BerkeleyDB.3.3/lib --with-bdb-incdir=/usr/local/BerkeleyDB.3.3/includeсделан линк на библиотеку
ln -s /usr/local/sasl2/lib/sasl2 /usr/lib/sasl2сделан saslpasswd cyrus
su cyrus
imtest -m login -p imap Х.Х.Х.Х не пропускает
в лог сыпетсяimtest: unable to dlopen /usr/lib/sasl2/libsasldb.so.2: libdb-3.3.so: cannot open shared object file: No such
file or directoryно билиотека есть, подскажите пожалуйтся в confugure ошибка или в permitions
>Инсталирован SASL 2.1.12, Cyrus 2.1.12 и Berkeley 3.3. запущен master
>
>SASL
>env CPPFLAGS="-I/usr/local/BerkeleyDB.3.3/include" LDFLAGS="-L/usr/local/BerkeleyDB.3.3/lib -R/usr/local/BerkeleyDB.3.3/lib" ./configure --prefix=/usr/local/sasl2 --enable-saslauthd --with-pwcheck=/var/pwcheck --disable-checkapop --disable-krb4 --disable-gssapi --with-openssl=/usr/local/ssl
>--enable-plain --enable-login --with-dblib=berkeley --disable-opt
>
>Cyrus Imap
>./configure --prefix=/usr/local/cyrus --with-cyrus-prefix=/usr/local/cyrus --with-auth=unix --with-openssl=/usr/local/ssl --with-sasl=/usr/local/sasl2 -with-dbdir=/usr/local/BerkeleyDB.3.3 --with-bdb-libdir=/usr/local/BerkeleyDB.3.3/lib --with-bdb-incdir=/usr/local/BerkeleyDB.3.3/include
>
>сделан линк на библиотеку
>ln -s /usr/local/sasl2/lib/sasl2 /usr/lib/sasl2
>
>сделан saslpasswd cyrus
>
>su cyrus
>imtest -m login -p imap Х.Х.Х.Х не пропускает
>в лог сыпется
>
>imtest: unable to dlopen /usr/lib/sasl2/libsasldb.so.2: libdb-3.3.so: cannot open shared object file: No
>such
>file or directory
>
>но билиотека есть, подскажите пожалуйтся в confugure ошибка или в permitions
Sorry
Сделал правильную ссылку ln -s /usr/local/BerkeleyDB.3.3/lib /usr/lib/sasl2новая беда
в логе:
sasldblistusers2: unable to open Berkeley db /etc/sasldb2: No such file or directoryпроверяю :# ./sasldblistusers2
cyrus@test: userPasswordЧе за хрень ??? Помогите, с Cyrus и SASL впервые
> imtest: unable to dlopen /usr/lib/sasl2/libsasldb.so.2: libdb-3.3.so:
> cannot open shared object file: No such file or directory
Очевидно, динамический линкер не может найти дин. библиотеку
libdb-3.3.so - нужно, чтобы дин. линкер знал путь к ней,
т.е. /usr/local/BerkeleyDB.3.3/lib
Делается это через ldconfig, если у тебя FreeBSD - можно просто скопировать из /etc/defaults/rc.conf в /etc/rc.conf определение
переменной ldconfig_paths, добавить туда путь к Berkeley/lib и сделать
рестарт. Можно сделать без рестарта - почитай man ldconfig и модифицируй
его conf - файлы (не помню, как в они называются в linux-e ).>в логе:
>sasldblistusers2: unable to open Berkeley db /etc/sasldb2: No such file >or directoryСкорее всего, проблема с правами доступа к /etc/sasldb2 -
по умолчанию Cyrus компилируется так, чтобы запускаться с правами
юзера cyrus (можно переопределить во время компиляции). Нужно проверить,
имеет ли юзер cyrus доступ к /etc/sasldb2
>> imtest: unable to dlopen /usr/lib/sasl2/libsasldb.so.2: libdb-3.3.so:
>> cannot open shared object file: No such file or directory
>Очевидно, динамический линкер не может найти дин. библиотеку
>libdb-3.3.so - нужно, чтобы дин. линкер знал путь к ней,
>т.е. /usr/local/BerkeleyDB.3.3/lib
>Делается это через ldconfig, если у тебя FreeBSD - можно просто скопировать
>из /etc/defaults/rc.conf в /etc/rc.conf определение
>переменной ldconfig_paths, добавить туда путь к Berkeley/lib и сделать
>рестарт. Можно сделать без рестарта - почитай man ldconfig и модифицируй
>его conf - файлы (не помню, как в они называются в linux-e
>).
>
>>в логе:
>>sasldblistusers2: unable to open Berkeley db /etc/sasldb2: No such file >or directory
>
>Скорее всего, проблема с правами доступа к /etc/sasldb2 -
>по умолчанию Cyrus компилируется так, чтобы запускаться с правами
>юзера cyrus (можно переопределить во время компиляции). Нужно проверить,
>имеет ли юзер cyrus доступ к /etc/sasldb2да имеет
chown cyrus /etc/sasldb2 сделал сразу после создания saslpasswd2 cyrus
>>> imtest: unable to dlopen /usr/lib/sasl2/libsasldb.so.2: libdb-3.3.so:
>>> cannot open shared object file: No such file or directory
>>Очевидно, динамический линкер не может найти дин. библиотеку
>>libdb-3.3.so - нужно, чтобы дин. линкер знал путь к ней,
>>т.е. /usr/local/BerkeleyDB.3.3/lib
>>Делается это через ldconfig, если у тебя FreeBSD - можно просто скопировать
>>из /etc/defaults/rc.conf в /etc/rc.conf определение
>>переменной ldconfig_paths, добавить туда путь к Berkeley/lib и сделать
>>рестарт. Можно сделать без рестарта - почитай man ldconfig и модифицируй
>>его conf - файлы (не помню, как в они называются в linux-e
>>).
>>
>>>в логе:
>>>sasldblistusers2: unable to open Berkeley db /etc/sasldb2: No such file >or directory
>>
>>Скорее всего, проблема с правами доступа к /etc/sasldb2 -
>>по умолчанию Cyrus компилируется так, чтобы запускаться с правами
>>юзера cyrus (можно переопределить во время компиляции). Нужно проверить,
>>имеет ли юзер cyrus доступ к /etc/sasldb2
>
>да имеет
>chown cyrus /etc/sasldb2 сделал сразу после создания saslpasswd2 cyrus
прописал все линки в /etc/ld.so.conf
Попробуй
1) установить переменную shell в CYRUS_VERBOSE=9
2) запустить master таким оброазом: master -D (при этом он не уйдёт
в background и будет показывать информацию, о том, что он сейчас делает)Это позволит собрать побольше информации.
А что у тебя в /etc/imapd.conf и /etc/cyrus.conf?
>Попробуй
>1) установить переменную shell в CYRUS_VERBOSE=9
>2) запустить master таким оброазом: master -D (при этом он не уйдёт
>
>в background и будет показывать информацию, о том, что он сейчас делает)
>
>
>Это позволит собрать побольше информации.
>А что у тебя в /etc/imapd.conf и /etc/cyrus.conf?
>
># su cyrusКажется не установлен механизм аутентификации ???? нет
sh-2.05a$ ./imtest -m login -p imap 10.0.0.2
S: * OK gate2 Cyrus IMAP4 v2.1.12 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE LISTEXT LIST-SUBSCRIBED ANNOTATEMORE
S: C01 OK Completed
Please enter your password:
C: L01 LOGIN cyrus {11}
S: + go ahead
C: <omitted>
S: L01 NO Login failed: no mechanism available
Authentication failed. generic failure
Security strength factor: 0
imapd.log
X.X.X.X[10.0.0.1] plaintext cyrus SASL(-4): no mechanism available: checkp
ass failecyrus.conf
# standard standalone server implementation
START {
# do not delete this entry!
recover cmd="ctl_cyrusdb -r"
# this is only necessary if using idled for IMAP IDLE
# idled cmd="idled"
}
# UNIX sockets start with a slash and are put into /var/imap/socket
SERVICES {
# add or remove based on preferences
imap cmd="/usr/local/cyrus/bin/imapd" listen="imap" prefork=0
imaps cmd="/usr/local/cyrus/bin/imapd -s" listen="imaps" prefork=0
pop3 cmd="/usr/local/cyrus/bin/pop3d" listen="pop3" prefork=0
pop3s cmd="/usr/local/cyrus/bin/pop3d -s" listen="pop3s" prefork=0
sieve cmd="timsieved" listen="sieve" prefork=0
# at least one LMTP is required for delivery
# lmtp cmd="/usr/local/cyrus/bin/lmtpd" listen="lmtp" prefork=0
lmtpunix cmd="/usr/local/cyrus/bin/lmtpd" listen="/var/imap/socket/lmtp" prefork=0
# this is only necessary if using notifications
# notify cmd="/usr/local/cyrus/bin/notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1
}
EVENTS {
# this is required
checkpoint cmd="/usr/local/cyrus/bin/ctl_cyrusdb -c" period=30
# this is only necessary if using duplicate delivery suppression
delprune cmd="/usr/local/cyrus/bin/ctl_deliver -E 3" period=1440
# this is only necessary if caching TLS sessions
tlsprune cmd="/usr/local/cyrus/bin/tls_prune" period=1440
}imapd.conf
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus root
srvtab: /var/imap/srvtab
allowplaintext: yes
allowanonymouslogin: no
sasl_pwcheck_method: auxprop
>Попробуй
>1) установить переменную shell в CYRUS_VERBOSE=9
>2) запустить master таким оброазом: master -D (при этом он не уйдёт
>
>в background и будет показывать информацию, о том, что он сейчас делает)
>
>
>Это позволит собрать побольше информации.
>А что у тебя в /etc/imapd.conf и /etc/cyrus.conf?
>
># su cyrusКажется не установлен механизм аутентификации ???? нет
sh-2.05a$ ./imtest -m login -p imap 10.0.0.2
S: * OK gate2 Cyrus IMAP4 v2.1.12 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE LISTEXT LIST-SUBSCRIBED ANNOTATEMORE
S: C01 OK Completed
Please enter your password:
C: L01 LOGIN cyrus {11}
S: + go ahead
C: <omitted>
S: L01 NO Login failed: no mechanism available
Authentication failed. generic failure
Security strength factor: 0
imapd.log
X.X.X.X[10.0.0.1] plaintext cyrus SASL(-4): no mechanism available: checkp
ass failecyrus.conf
# standard standalone server implementation
START {
# do not delete this entry!
recover cmd="ctl_cyrusdb -r"
# this is only necessary if using idled for IMAP IDLE
# idled cmd="idled"
}
# UNIX sockets start with a slash and are put into /var/imap/socket
SERVICES {
# add or remove based on preferences
imap cmd="/usr/local/cyrus/bin/imapd" listen="imap" prefork=0
imaps cmd="/usr/local/cyrus/bin/imapd -s" listen="imaps" prefork=0
pop3 cmd="/usr/local/cyrus/bin/pop3d" listen="pop3" prefork=0
pop3s cmd="/usr/local/cyrus/bin/pop3d -s" listen="pop3s" prefork=0
sieve cmd="timsieved" listen="sieve" prefork=0
# at least one LMTP is required for delivery
# lmtp cmd="/usr/local/cyrus/bin/lmtpd" listen="lmtp" prefork=0
lmtpunix cmd="/usr/local/cyrus/bin/lmtpd" listen="/var/imap/socket/lmtp" prefork=0
# this is only necessary if using notifications
# notify cmd="/usr/local/cyrus/bin/notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1
}
EVENTS {
# this is required
checkpoint cmd="/usr/local/cyrus/bin/ctl_cyrusdb -c" period=30
# this is only necessary if using duplicate delivery suppression
delprune cmd="/usr/local/cyrus/bin/ctl_deliver -E 3" period=1440
# this is only necessary if caching TLS sessions
tlsprune cmd="/usr/local/cyrus/bin/tls_prune" period=1440
}imapd.conf
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus root
srvtab: /var/imap/srvtab
allowplaintext: yes
allowanonymouslogin: no
sasl_pwcheck_method: auxprop
>Кажется не установлен механизм аутентификации ???? нет
Да, похоже не может найти твой auxprop, т.е. libsasldb.so
>>Кажется не установлен механизм аутентификации ???? нет
>Да, похоже не может найти твой auxprop, т.е. libsasldb.soДа точно, теперь нашел
>>>Кажется не установлен механизм аутентификации ???? нет
>>Да, похоже не может найти твой auxprop, т.е. libsasldb.so
>
>Да точно, теперь нашел
Перечитал доки но так ине понял до конца механизм.
Да стоит auxprop, но как это работает, вроде по конфугурации все правильно imtest проходит, а cyrus нетПри компиляции надо ли использовать --with-perl=/usr/lib/perl5 в моем случае или нет, а то я инсталирую cyrus в /usr/local/cyrus(а там)/lib/site_perl/i386-linux/Cyrus присутсвует
да и в лог сыпется
perl: No worthy mechs foundМобыть из этого ???
Нет, проблема именно в механизмах. Просто cyradm -- это скрипт на Perl-е,
вот Perl и ругается.
Попробуй
cyradm --user cyrus --auth logn my_imap_server
т.е. явно указать механизм аутентификации.
>Нет, проблема именно в механизмах. Просто cyradm -- это скрипт на Perl-е,
>
>вот Perl и ругается.
>Попробуй
> cyradm --user cyrus --auth logn my_imap_server
>т.е. явно указать механизм аутентификации.Попробовал
sh-2.05a$ ./imtest -m login -p imap 10.0.0.2
S: * OK gate2 Cyrus IMAP4 v2.1.12 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE AUTH=OTP AUTH=DIGEST-MD5 AUTH=CRAM-MD5
S: C01 OK Completed
Please enter your password:
C: L01 LOGIN cyrus {11}
S: + go ahead
C: <omitted>
S: L01 OK User logged in
Authenticated.
Security strength factor: 0Здесь все нормально
sh-2.05a$ ./cyradm -user cyrus 10.0.0.2 imap
Password:
Cannot find termcap: failed termcap lookup on vt220 at /usr/lib/perl5/Term/ReadLine.pm line 309Жопа!
./cyradm -user cyrus 10.0.0.2 imap
sh-2.05a$ ./cyradm -user cyrus -auth login 10.0.0.2 imap
IMAP Password:
Cannot find termcap: failed termcap lookup on vt220 at /usr/lib/perl5/Term/ReadLine.pm line 309Тоже
а вот эта строка
sub LoadTermCap {
return if defined $terminal;
require Term::Cap;
$terminal = Tgetent Term::Cap ({OSPEED => 9600}); # Avoid warning.
}
????
!!!
Я вот себе установил linux (Mandrake 9.0), чтобы посмотреть, в чём там дело.
Собралось всё гладко, cyradm запускается тоже без проблем (правда,
пришлось указать perl-у пути к модулям cyradm-а).
Но я ещё буду копаться - поищу эту проблему.
По моему, стоит проверить termcap, terminfo - права, существование и
наличие в них описания указаного терминала.
Но может, проблема с модулем Term::ReadLine в perl-e.
А какой точно linux у тебя стоит и какая версия perl-a?
>Я вот себе установил linux (Mandrake 9.0), чтобы посмотреть, в чём там
>дело.
>Собралось всё гладко, cyradm запускается тоже без проблем (правда,
>пришлось указать perl-у пути к модулям cyradm-а).
>Но я ещё буду копаться - поищу эту проблему.
>По моему, стоит проверить termcap, terminfo - права, существование и
>наличие в них описания указаного терминала.
>Но может, проблема с модулем Term::ReadLine в perl-e.
>А какой точно linux у тебя стоит и какая версия perl-a?как указать perl путь к cyradm, если perl стоит
в /usr/lib/perl5... а cyradm в /usr/cyrus. Я читал в mail-list на сайте cyrus, что кто-то там пробовал установить линк, сделал, тоже самое.
На самом деле он действительно ругается на ReadLine, но как это исправлять я не знаю, если можешь помоги.
!!!
Igor ты где?
У меня Slackware 8.1
>>Я вот себе установил linux (Mandrake 9.0), чтобы посмотреть, в чём там
>>дело.
>>Собралось всё гладко, cyradm запускается тоже без проблем (правда,
>>пришлось указать perl-у пути к модулям cyradm-а).
>>Но я ещё буду копаться - поищу эту проблему.
>>По моему, стоит проверить termcap, terminfo - права, существование и
>>наличие в них описания указаного терминала.
>>Но может, проблема с модулем Term::ReadLine в perl-e.
>>А какой точно linux у тебя стоит и какая версия perl-a?
>
>как указать perl путь к cyradm, если perl стоит
>в /usr/lib/perl5... а cyradm в /usr/cyrus. Я читал в mail-list на сайте
>cyrus, что кто-то там пробовал установить линк, сделал, тоже самое.
>На самом деле он действительно ругается на ReadLine, но как это исправлять
>я не знаю, если можешь помоги.все-таки не получилось у меня разобраться как подключать berkeley из директории. Скомпилировал из предустановленного, все встало.
Объясни как объяснить perl, где искать cyrus. Не хочется копировать из /usr/local/lib, есть наверно другой способ../cyradm -user cyrus 10.0.0.2 imap
Can't locate Cyrus/IMAP/Shell.pm in @INC (@INC contains: /usr/lib/perl5/i386-linux /usr/lib/perl5 /usr/lib/perl5/site_perl/i386-linux /usr/lib/perl5/site_perl /usr/lib/perl5/site_perl .).
BEGIN failed--compilation aborted.
, .
>>>Я вот себе установил linux (Mandrake 9.0), чтобы посмотреть, в чём там
>>>дело.
>>>Собралось всё гладко, cyradm запускается тоже без проблем (правда,
>>>пришлось указать perl-у пути к модулям cyradm-а).
>>>Но я ещё буду копаться - поищу эту проблему.
>>>По моему, стоит проверить termcap, terminfo - права, существование и
>>>наличие в них описания указаного терминала.
>>>Но может, проблема с модулем Term::ReadLine в perl-e.
>>>А какой точно linux у тебя стоит и какая версия perl-a?
>>
>>как указать perl путь к cyradm, если perl стоит
>>в /usr/lib/perl5... а cyradm в /usr/cyrus. Я читал в mail-list на сайте
>>cyrus, что кто-то там пробовал установить линк, сделал, тоже самое.
>>На самом деле он действительно ругается на ReadLine, но как это исправлять
>>я не знаю, если можешь помоги.
>
>все-таки не получилось у меня разобраться как подключать berkeley из директории. Скомпилировал
>из предустановленного, все встало.
>Объясни как объяснить perl, где искать cyrus. Не хочется копировать из /usr/local/lib,
>есть наверно другой способ.
>
>./cyradm -user cyrus 10.0.0.2 imap
>Can't locate Cyrus/IMAP/Shell.pm in @INC (@INC contains: /usr/lib/perl5/i386-linux /usr/lib/perl5 /usr/lib/perl5/site_perl/i386-linux /usr/lib/perl5/site_perl /usr/lib/perl5/site_perl
>.).
>BEGIN failed--compilation aborted.
>, .
>
Скопировал из /usr/local/cyrus/lib все что относится к Perl в /usr/lib/perl5, больше не ругается, пользователь создается правда по прежнему
ругается на
Cannot find termcap: failed termcap lookup on vt220 at /usr/lib/perl5/Term/ReadLine.pm line 309
ну хрен бы с ним.
Добрый день,
для того чтобы указать perl-у пути к дополнительным модулям можно
1)переменной окружения PERL5LIB указать пути, в которых искать модули
(и добавить эту переменную напр. в /etc/profile)
2)модифицировать файл Config.pmНо та ошибка, которая вылазила у тебя, скорее всего с этим не связана.
Если была бы проблема с путями - cyradm вообще бы не запускался
(как у меня на той машине, где я поставил linux).Если с termcap, terminfo всё в порядке - можно попытаться обновить/добавить модули Term::ReadLine (в частности ReadLine::GNU) с www.cpan.org или
обновить весь perl
(дело хлопотное и если канал слабый, заберёт много времени)
при помощи модуля CPAN.pm (если установлен скрипт cpan или CPAN - можно его использовать, если нет - вот текст такого скрипта:
----------------------------------------------------
#!/usr/local/bin/perleval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shelluse CPAN;
shell;
---------------------------------------------------
)
Этот скрипт можно использовать для установки и обновления
модулей perl-а и самого перла из Internet.
>Добрый день,
>для того чтобы указать perl-у пути к дополнительным модулям можно
>1)переменной окружения PERL5LIB указать пути, в которых искать модули
>(и добавить эту переменную напр. в /etc/profile)
>2)модифицировать файл Config.pm
>
>Но та ошибка, которая вылазила у тебя, скорее всего с этим не
>связана.
>Если была бы проблема с путями - cyradm вообще бы не запускался
>
>(как у меня на той машине, где я поставил linux).
>
>Если с termcap, terminfo всё в порядке - можно попытаться обновить/добавить модули
>Term::ReadLine (в частности ReadLine::GNU) с www.cpan.org или
>обновить весь perl
>(дело хлопотное и если канал слабый, заберёт много времени)
>при помощи модуля CPAN.pm (если установлен скрипт cpan или CPAN - можно
>его использовать, если нет - вот текст такого скрипта:
>----------------------------------------------------
>#!/usr/local/bin/perl
>
>eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
> if 0; # not running under some shell
>
>
>use CPAN;
>shell;
>---------------------------------------------------
>)
>Этот скрипт можно использовать для установки и обновления
>модулей perl-а и самого перла из Internet.
Спасибо!!! Попытаюсь поковырять. Спасибо за все советы, в основном все работает.