Re: cyrus imap/SASL + sendmail/SASL (Whatever happened?)

From: David W. Jablonski (no email)
Date: Mon Oct 01 2001 - 13:35:56 EDT


I apologize for bringing up such an old discussion but whatever became
of this? I am using 2.0.16 with Sendmail 8.12 and I'm having the same
problem that if cyrus isn't the owner of /etc/sasldb the master process
can't read it. I have read rights for group mail (which cyrus is a
member of) but when I change rights on sasldb to root.mail with rx-r
rights Cyrus doesn't work. This did work for 1.6.24 before I upgraded.
I set the options in Sendmail to ignore Groupreadable so Sendmail
doesn't complain about those rights it's just cyrus. Thanks for any
info...

On Sat, 2001-03-10 at 13:29, Lawrence Greenfield wrote:
> This is reasonable. Would people be happier if the master process did a setgid() by default?
>
> Thanks,
> Larry
>

> --On Wednesday, January 17, 2001 02:54:00 PM +0100 Robert Böhm <> wrote:
>
> >
> >
> > Hi there.
> >
> > ----- Original Message -----
> > From: <>
> > To: <>; <jl+@cs.cmu.edu>
> > Sent: Wednesday, January 17, 2001 5:10 AM
> > Subject: Re: Authentication Cyrus/sasl
> >
> >
> >> Sendmail and cyrus don't cooperate very well with file access.
> >
> > I've encountered the following problem in trying to use sendmail w/ SASL
> > and cyrus' imap w/ SASL at the same time:
> >
> > Per default both will want readaccess to the /etc/sasldb.
> > Furthermore sendmail usually will not allow this file to be write or
> > readable by any other user than the one which it is running as.
> >
> > This, at first, seems unsolvable, as my sendmail daemon is running as a
> > privileged user, as opposed to cyrus imap.
> >
> > But sendmail is kind enough to offer an option which will allow for the
> > /etc/sasldb to be groupreadable.
> > So I chmod/own'ed the file to 640/root.cyrus, where the group cyrus is the
> > default group for user cyrus, with no other users in it.
> >
> > I supposed this to work, as
> > # su cyrus
> > $ cat /etc/sasldb
> > did work, too.. but it did not. Cyrus imap, even though running as cyrus,
> > did not have the permission to read the file. chown'ing would have worked
> > though, but was not an option as it would not have been accepted by
> > sendmails security checks.
> >
> > Well, I have changed the source code of `master`, and now it works. But I
> > don't know whether it will impose any security risks or the general
> > operability of cyrus imap.
> >
> > These are my changes to file /usr/src/cyrus-imapd-2.07/master/master.c :
> >
> > int become_cyrus(void)
> > {
> > struct passwd *p;
> > static int uid = 0;
> > + static int gid = 0;
> >
> > - if (uid) return setuid(uid);
> > + if (uid&&gid) return (setgid(gid) || setuid(uid)) ;
> >
> > p = getpwnam(CYRUS_USER);
> > if (p == NULL) {
> > syslog(LOG_ERR, "no entry in /etc/passwd for %s",
> > CYRUS_USER); return -1;
> > }
> > uid = p->pw_uid;
> > + gid = p->pw_gid;
> > - return setuid(uid);
> > + return (setgid(gid) | setuid(uid)) ;
> > }
> >
> > Any comment on whether this course of action is acceptable is welcome.
> >
> > Thanks, Robert.
> >
> > ---
> > The universe is filled with dark letters even though we can't see them.
> > 90% of all letters are dark.
> >
>
>
>
>

-- 
David W. Jablonski, RHCE, MCSE
Systems Administrator
http://www.weccusa.org
http://www.energyfinancesolutions.com







Hosted Email Solutions

Invaluement Anti-Spam DNSBLs



Powered By FreeBSD   Powered By FreeBSD