SIEVE weirdness

Brian brianb at sboss.net
Wed Feb 11 09:34:39 EST 2004


A friend of mine has tried to get Cyrus 2.1.5 running on RHEL 3 and all
works except sieve.

Doing something like 'sieveshell -u cyrus -a cyrus' prompts for the
password over and over.

The error message I get is
Feb  5 17:09:48 agentsmith timsieved[4172]: unable to open Berkeley db
/etc/sasldb2: Invalid argument
Feb  5 17:09:48 agentsmith timsieved[4172]: unable to open Berkeley db
/etc/sasldb2: Invalid argument
Feb  5 17:09:48 agentsmith timsieved[4172]: no secret in database
Feb  5 17:09:48 agentsmith timsieved[4172]: badlogin:
localhost.localdomain[127.0.0.1] DIGEST-MD5 authentication failure

Seems like a problem with the auth method, but when I look in
/etc/imapd.conf he's using saslauthd ...

postmaster: postmaster
configdirectory: /var/lib/imap/
partition-default: /var/spool/imap
admins: cyrus
allowanonymouslogin: no
allowplaintext: yes
sasl_mech_list: PLAIN DIGEST-MD5 shadow pwcheck
servername: agentsmith.novussententia.com
autocreatequota: 10000
reject8bit: no
quotawarn: 90
timeout: 30
poptimeout: 10
sasl_pwcheck_method: saslauthd
sievedir: /usr/sieve
sendmail: /usr/sbin/sendmail
sieve_maxscriptsize: 32
sieveuserhomedir: no
sieve_maxscripts: 5
tls_ca_file: /var/lib/imap/cacert.pem
tls_cert_file: /var/lib/imap/server.crt
tls_key_file: /var/lib/imap/server.key

His cyrus.conf:

START {
  # do not delete this entry!
  mboxlist      cmd="ctl_cyrusdb -r"
  deliver       cmd="ctl_deliver -r"
  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/lib/imap/sockets
SERVICES {
  # add or remove based on preferences
  imap          cmd="imapd" listen="imap" prefork=5
  imaps         cmd="imapd -s" listen="imaps" prefork=1
  #pop3         cmd="pop3d" listen="pop3" prefork=3
  #pop3s        cmd="pop3d -s" listen="pop3s" prefork=1
  sieve         cmd="timsieved" listen="localhost:sieve" prefork=0
  lmtpunix      cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=0

  # this is only necessary if using notifications
#  notify       cmd="notifyd" listen="/var/lib/imap/socket/notify"
proto="udp" prefork=1
}

EVENTS {
  # this is required
  checkpoint    cmd="ctl_cyrusdb -c" period=30

  # this is only necessary if using duplicate delivery suppression
  delprune      cmd="ctl_deliver -E 3" at=0400

  # this is only necessary if caching TLS sessions
  tlsprune      cmd="tls_prune" at=0400
  squatter      cmd="squatter -r user" period=1440
}

He can login via IMAP just fine.  I even see in the logs where it accepts
the password as type 'plain'.  Below is a strace where we try to
authenticate via sieveshell.  I see it trying to open /etc/shadow, but not
sasldb

[pid  4163] <... accept resumed> {sa_family=AF_UNIX, path=@}, [2]) = 7
[pid  4163] fcntl64(6, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0,
len=1} <unfinished ...>
[pid  4162] <... fcntl64 resumed> )     = 0
[pid  4163] <... fcntl64 resumed> )     = 0
[pid  4162] accept(5,  <unfinished ...>
[pid  4163] read(7, "\0\6", 2)          = 2
[pid  4163] read(7, "csmith", 6)        = 6
[pid  4163] read(7, "\0\5", 2)          = 2
[pid  4163] read(7, "fr00t", 5)         = 5
[pid  4163] read(7, "\0\4", 2)          = 2
[pid  4163] read(7, "smtp", 4)          = 4
[pid  4163] read(7, "\0\0", 2)          = 2
[pid  4163] socket(PF_UNIX, SOCK_STREAM, 0) = 8
[pid  4163] connect(8, {sa_family=AF_UNIX, path="/var/run/.nscd_socket"},
110) = -1 ENOENT (No such file or directory)
[pid  4163] close(8)                    = 0
[pid  4163] open("/etc/nsswitch.conf", O_RDONLY) = 8
[pid  4163] fstat64(8, {st_mode=S_IFREG|0644, st_size=1686, ...}) = 0
[pid  4163] mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75ea000
[pid  4163] read(8, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1686
[pid  4163] read(8, "", 4096)           = 0
[pid  4163] close(8)                    = 0
[pid  4163] munmap(0xb75ea000, 4096)    = 0
[pid  4163] open("/etc/ld.so.cache", O_RDONLY) = 8
[pid  4163] fstat64(8, {st_mode=S_IFREG|0644, st_size=38297, ...}) = 0
[pid  4163] old_mmap(NULL, 38297, PROT_READ, MAP_PRIVATE, 8, 0) = 0xb75e1000
[pid  4163] close(8)                    = 0
[pid  4163] open("/lib/libnss_files.so.2", O_RDONLY) = 8
[pid  4163] read(8,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\35\0"..., 512) = 512
[pid  4163] fstat64(8, {st_mode=S_IFREG|0755, st_size=51924, ...}) = 0
[pid  4163] old_mmap(NULL, 46720, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0)
= 0xb73ce000
[pid  4163] old_mmap(0xb73d9000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED, 8, 0xa000) = 0xb73d9000
[pid  4163] close(8)                    = 0
[pid  4163] munmap(0xb75e1000, 38297)   = 0
[pid  4163] open("/etc/passwd", O_RDONLY) = 8
[pid  4163] fcntl64(8, F_GETFD)         = 0
[pid  4163] fcntl64(8, F_SETFD, FD_CLOEXEC) = 0
[pid  4163] fstat64(8, {st_mode=S_IFREG|0644, st_size=2261, ...}) = 0
[pid  4163] mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75ea000
[pid  4163] read(8, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2261
[pid  4163] close(8)                    = 0
[pid  4163] munmap(0xb75ea000, 4096)    = 0
[pid  4163] time(NULL)                  = 1076018980
[pid  4163] open("/etc/shadow", O_RDONLY) = 8
[pid  4163] fcntl64(8, F_GETFD)         = 0
[pid  4163] fcntl64(8, F_SETFD, FD_CLOEXEC) = 0
[pid  4163] fstat64(8, {st_mode=S_IFREG|0600, st_size=1863, ...}) = 0
[pid  4163] mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75ea000
[pid  4163] read(8, "root:$1$q5CN0a6g$EKr/kJsRo5u9IMS"..., 4096) = 1863
[pid  4163] close(8)                    = 0
[pid  4163] munmap(0xb75ea000, 4096)    = 0
[pid  4163] write(7, "\0\2", 2)         = 2
[pid  4163] write(7, "OK", 2)           = 2
[pid  4163] close(7)                    = 0
[pid  4163] fcntl64(6, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0,
len=1} <unfinished ...>
[pid  4162] <... accept resumed> {sa_family=AF_UNIX, path=@}, [2]) = 7
[pid  4162] fcntl64(6, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0,
len=1} <unfinished ...>
[pid  4160] <... fcntl64 resumed> )     = 0
[pid  4162] <... fcntl64 resumed> )     = 0
[pid  4160] accept(5,  <unfinished ...>
[pid  4162] read(7, "\0\5", 2)          = 2
[pid  4162] read(7, "cyrus", 5)         = 5
[pid  4162] read(7, "\0\5", 2)          = 2
[pid  4162] read(7, "cyru$", 5)         = 5
[pid  4162] read(7, "\0\5", 2)          = 2
[pid  4162] read(7, "sieve", 5)         = 5
[pid  4162] read(7, "\0\0", 2)          = 2
[pid  4162] socket(PF_UNIX, SOCK_STREAM, 0) = 8
[pid  4162] connect(8, {sa_family=AF_UNIX, path="/var/run/.nscd_socket"},
110) = -1 ENOENT (No such file or directory)
[pid  4162] close(8)                    = 0
[pid  4162] open("/etc/nsswitch.conf", O_RDONLY) = 8
[pid  4162] fstat64(8, {st_mode=S_IFREG|0644, st_size=1686, ...}) = 0
[pid  4162] mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75ea000
[pid  4162] read(8, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1686
[pid  4162] read(8, "", 4096)           = 0
[pid  4162] close(8)                    = 0
[pid  4162] munmap(0xb75ea000, 4096)    = 0
[pid  4162] open("/etc/ld.so.cache", O_RDONLY) = 8
[pid  4162] fstat64(8, {st_mode=S_IFREG|0644, st_size=38297, ...}) = 0
[pid  4162] old_mmap(NULL, 38297, PROT_READ, MAP_PRIVATE, 8, 0) = 0xb75e1000
[pid  4162] close(8)                    = 0
[pid  4162] open("/lib/libnss_files.so.2", O_RDONLY) = 8
[pid  4162] read(8,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\35\0"..., 512) = 512
[pid  4162] fstat64(8, {st_mode=S_IFREG|0755, st_size=51924, ...}) = 0
[pid  4162] old_mmap(NULL, 46720, PROT_READ|PROT_EXEC, MAP_PRIVATE, 8, 0)
= 0xb73ce000
[pid  4162] old_mmap(0xb73d9000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED, 8, 0xa000) = 0xb73d9000
[pid  4162] close(8)                    = 0
[pid  4162] munmap(0xb75e1000, 38297)   = 0
[pid  4162] open("/etc/passwd", O_RDONLY) = 8
[pid  4162] fcntl64(8, F_GETFD)         = 0
[pid  4162] fcntl64(8, F_SETFD, FD_CLOEXEC) = 0
[pid  4162] fstat64(8, {st_mode=S_IFREG|0644, st_size=2261, ...}) = 0
[pid  4162] mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75ea000
[pid  4162] read(8, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2261
[pid  4162] close(8)                    = 0
[pid  4162] munmap(0xb75ea000, 4096)    = 0
[pid  4162] time(NULL)                  = 1076018993
[pid  4162] open("/etc/shadow", O_RDONLY) = 8
[pid  4162] fcntl64(8, F_GETFD)         = 0
[pid  4162] fcntl64(8, F_SETFD, FD_CLOEXEC) = 0
[pid  4162] fstat64(8, {st_mode=S_IFREG|0600, st_size=1863, ...}) = 0
[pid  4162] mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb75ea000
[pid  4162] read(8, "root:$1$q5CN0a6g$EKr/kJsRo5u9IMS"..., 4096) = 1863
[pid  4162] close(8)                    = 0
[pid  4162] munmap(0xb75ea000, 4096)    = 0
[pid  4162] write(7, "\0\2", 2)         = 2
[pid  4162] write(7, "OK", 2)           = 2
[pid  4162] close(7)                    = 0
[pid  4162] fcntl64(6, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0,
len=1} <unfinished ...>

Any idea on what's going wrong?

-- 
Brian
---
Home Page: http://asg.web.cmu.edu/cyrus
Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list