GSoC 2008 dma enhancements
Max Lindner
gisanka at googlemail.com
Mon Jun 2 15:30:39 PDT 2008
Hi out there!
I'm Max, a 25 year old graduate computer science student from germany.
I finished my diploma thesis in April and held my final talk about my
thesis the friday before. That's why I was nearly invisible since my
accepted application. Besides computers I'm very keen on running,
biking, climbing (and many other sports). I live in Erlangen, which is
in Frankonia (Bavaria) where we have many little breweries and most of
them produce very good beer :-) My nickname in #dragonflybsd is
gisanka.
I'm very happy to have the opportunity to work this summer at the
dragonflybsd project.
My project consists of two parts:
-add .forward support
-enhance smarthost handling
Where the .forward handling should be done by July and the smarthost
handling by August.
For the .forward support I planned to support any combination of the
following 3 ways to redirect a message:
|/pipe/to/executable
mailbox at remote.host
!deliverdirekttomailbox
To integrate these schemes I plan to extend the parser which parses
/etc/aliases for now. I think it would be appreciated if in
/etc/aliases would be the same support for these 3 lines above. I'm
not really sure how fast I can get used to the parser language, maybe
I will need some help on this topic. We will see.
In order to read a users .forward file, the dma-process must be run as
root, so it must be set setuid root. This would solve the problem
which I read at the mailinglist the last week, where it was not
possible to write a mail from non-root to non-root ootb.
I would not run the dma process as a daemon. It should be sufficient
if it runs as long as it tries to deliver a message and terminate
after the last message was sent. I guess when dma is used on a host,
then the mailsetup is a very tiny one (and mostly with a smarthost)
and so there should be no need to listen on port 25 or have a
queue-runner-daemon because there are not many mails to send.
I guess thats the whole thing which would change central things in dma
during the first coding period.
Things to care about:
-make sure that dma reads only .forward and could not be used to read
other files of another user
-make sure that the input is sanitized when running as root
-drop privileges asap during execution (if possible at all)
-if mail is piped to executable, run the executable as user, not as root
Do you think I disregarded something? Is there anything to add to the
list I should care about?
Greetings,
Max
More information about the Kernel
mailing list