[Mailman-Developers] mailman and AFS?
Harald Meland
Harald.Meland@usit.uio.no
04 May 1999 02:23:34 +0200
[Christopher Lindsey]
> Now for the tricky part. AFS doesn't use standard UNIX permissions,
> but instead depends on ACLs (ours uses Kerberos V for authentication).
> To be able to write into the AFS space, any program or shell must
> have a valid AFS token.
>
> I can do this by creating a "keytab" file; basically, that randomizes
> the password but lets me use it in shell scripts, etc. I just need
> to kinit against this file, do my operations, then do a kdestroy.
>
> Now for my questions:
>
> o where should I put these calls? I'm guessing that they should be
> in wrapper, but do I also need to put it into every binary
> in $prefix/cgi-bin? It appears that way...
Both the wrapper and all the cgi-bin/* binaries use run_script() from
src/common.c for exec()ing the python script that does the job. Off
the top of my head, I can't think of anything that needs write access
before run_script() is called.
> o am I going to run into any locking issues with multiple email and
> Web servers, or does mailman handle this?
If Mailmans mailingliste locking scheme works on AFS, I don't think
there should be any problems.
> If so, how?
See the MailList.Lock() and .Unlock() methods -- they currently use
posixfile.lock().
> AFS (like NFS) often has problems with flock() or fcntl()
> locking (so dot-locking is the preferred method).
Changing Lock() and Unlock() should be pretty straightforward.
> o does mailman actually do any permissions checking on files or
> directories? These checks would fail in AFS
Grepping the sources for ST_MODE told me of at least one place --
OutGoingQueue.isDeferred() works by checking the setuid bit of the
queue file. If I remember my AFS correctly, there is no SUID bit --
so you'd need to change .enqueueMessage, .isDeferred and
.deferMessage() to use some other scheme.
> Any pointers and/or answers would be appreciated.
Good luck, and let us know how things work out!
--
Harald