Problems with Cyrus-IMAP 2.0 on RedHat 7.0

Home
Cyrus-IMAP
RH 7.2 & reiserfs
RV-7A Project
Civil Liberties
Dog Stuff
DeCSS
Floppy Firewall
Webcam
Dynamic DNS
NUT UPS Cable
Repair Tips
Web site generator
Christianity
Links

Last updated: 6 January 2001

I just completed installing and configuring Cyrus-IMAP on a Redhat 7.0 box. The process was very difficult due a complete lack of decent documentation on the subject. So I thought I'd put together a few of my notes and hopefully save someone else some trouble.

Bad .rpm file...

The .rpm that ships with RedHat 7.0 doesn't work. The administrative program cyradm will not run and bombs with an error that looks something like this:

  Can't load '/usr/lib/perl5/site_perl/5.6.0/i386-linux/auto/Cyrus/IMAP/IMAP.so'
  for module Cyrus::IMAP: undefined symbol: SSL_write at...

This is not a problem with perl.

As stated in a usenet article:

This is a bug. A patch had to be added to disable SSL support in the perl modules, and we forgot to back it out when we enabled SSL later on in the 7 development cycle. A fixed package, updated to 2.0.7, is available in ftp://ftp.redhat.com//pub/rawhide/powertools/i386/RedHat/RPMS/.

The link to the ftp file doesn't work, however, but once you find the right path to the rawhide .rpm of 2.0.7 and download it, it should run fine.

You might be able to find these files on my ftp site.

inetd, xinetd, and cyrus-imapd...

Cyrus-IMAP 2.0 does not use inetd or xinetd. The HOWTO says nothing about this and I spent quite a few hours tracking it down. If you were to download the source, unpack it, and look through the docs, it would tell you that there is a master service (/usr/cyrus/bin/master) and that you should run this, but it does not say that it won't work through inetd or xinetd. And generally, folks that are using .rpms (like me) are doing so to because they assume these issues have been researched and the package has been set up correctly. Bad assumption in this case. The error you get when trying to use inetd or xinetd and running the test as shown in the HOWTO is:

  [cyrus@server bin]imtest -m login -p imap localhost
  C: C01 CAPABILITY
  failure: prot layer failure

Instead of trying to run it through inetd or xinetd, use the script that is provided. typing "/etc/rc.d/init.d/cyrus start" should work.

Problems with saslpasswd instructions in HOWTO...

When running the /usr/sbin/saslpasswd program to set the passwords for the users of your shiny new IMAP server, be sure to use the -c option. This will make the accounts if they do not already exist.

Understanding cyradm...

Read the man page for cyradm. It will help some. However, there are a couple things that aren't clear from the man page. For example, after you use the cm function to create mailboxes for the users, let's say you want to modify the access permissions for one of the mailboxes you created. The man page says to use:

  setaclmailbox mailbox identifier rights [identifier rights]

Here's a little better explanation:

mailbox is the mailbox that you want to set the rights (access permissions) for user.bobby is an example of a mailbox for a user named bobby.

identifier is the user that will have the permissions you define on this particular mailbox. This user does not have to be the owner of the mailbox.

For example, if you wanted jane to have create (c) and delete (d) rights to bobby's mailbox, you would use:

  setaclmailbox user.bobby jane cd

Then, when you listed the access permissions you would get something like:

  localhost> lsitaclmailbox user.bobby
  bobby lrswipcda
  jane cd

Mail transport agent (sendmail)...

Another problem is that the .rpm doesn't set up cyrus to be the transport agent for sendmail. They do include the correct file, but they don't copy it to the right place. You can do this by:

  cp /etc/sendmail.cf /etc/sendmail.cf.backup
  cp -f /etc/mail/sendmail.cyrus.cf /etc/sendmail.cf

Local users...

You probably already know this since you chose to use cyrus-imap rather than UW imap, but I'll say it anyway. You don't have to add local user accounts to /etc/passwd for users to be able to use the cyrus-imap server to get their mail.

I hope these few titbits have helped. If you have questions, you can mail me. If I can help, I will.

© 1999-2003 by
Mike Cencula
All rights reserved.

 [ Powered By Debian Linux ]