I have been spending a good deal of time in our mailing list server archives trying to run down several permissions related problems. After doing a great deal of searching online I realized that there was no place online that listed the comprehensive required permissions for the /var/lib/mailman/archives and /var/lib/mailman/lists folders. I spent a few hours today blindly stumbling through the permissions before I got them right so I thought I would print them here for reference. This is by no means a comprehensive list of the official permissions. It is however, what is working for me.
/var/lib/mailman/archives/private/listname
drwxrwsr-x 50 root mailman 4.0K Jul 26 13:17 . drwxrwx--- 312 root mailman 20K Jul 29 14:04 .. drwxrwxr-x 2 root mailman 4.0K Jul 29 13:36 2010-April -rw-rw-r-- 1 root mailman 13K Jul 29 13:35 2010-April.txt drwxrwxr-x 2 root mailman 4.0K Jul 29 13:36 2010-February -rw-rw-r-- 1 root mailman 8.7K Jul 29 13:35 2010-February.txt drwxrwxr-x 2 root mailman 4.0K Jul 29 13:36 2010-January -rw-rw-r-- 1 root mailman 21K Jul 29 13:35 2010-January.txt drwxrwxr-x 2 root mailman 4.0K Jul 29 13:36 2010-July -rw-rw-r-- 1 root mailman 34K Jul 29 13:35 2010-July.txt drwxrwxr-x 2 root mailman 4.0K Jul 29 13:36 2010-June -rw-rw-r-- 1 root mailman 25K Jul 29 13:35 2010-June.txt drwxrwxr-x 2 root mailman 4.0K Jul 29 13:36 2010-March -rw-rw-r-- 1 root mailman 24K Jul 29 13:35 2010-March.txt drwxrwxr-x 2 root mailman 4.0K Jul 29 13:36 2010-May -rw-rw-r-- 1 root mailman 22K Jul 29 13:35 2010-May.txt drwxrwxr-x 569 root mailman 20K Jul 29 13:35 attachments drwxrwx--- 2 root mailman 24K Jul 29 13:36 database -rw-rw-r-- 1 root mailman 38K Jul 29 13:36 index.html -rw-rw---- 1 root mailman 2.7K Jul 29 13:36 pipermail.pck
/var/lib/mailman/archives/private/listname/2010-July/
drwxrwxr-x 2 root mailman 4.0K Jul 29 13:36 . drwxrwxr-x 94 root mailman 12K Jul 29 13:36 .. -rw-rw-r-- 1 root mailman 2.5K Jul 29 13:36 002505.html -rw-rw-r-- 1 root mailman 2.2K Jul 29 13:36 002506.html -rw-rw-r-- 1 root mailman 2.5K Jul 29 13:36 002507.html -rw-rw-r-- 1 root mailman 4.4K Jul 29 13:36 author.html -rw-rw-r-- 1 root mailman 4.4K Jul 29 13:36 date.html lrwxrwxrwx 1 root mailman 11 Jul 29 13:35 index.html -> thread.html -rw-rw-r-- 1 root mailman 4.4K Jul 29 13:36 subject.html -rw-rw-r-- 1 root mailman 5.1K Jul 29 13:36 thread.html
/var/lib/mailman/archives/private/listname/database/
drwxrwx--- 2 root mailman 24K Jul 29 13:36 . drwxrwxr-x 94 root mailman 12K Jul 29 13:36 .. -rw-rw---- 1 root mailman 31K Jul 29 13:36 2010-July-article -rw-rw---- 1 root mailman 4.4K Jul 29 13:36 2010-July-author -rw-rw---- 1 root mailman 3.9K Jul 29 13:36 2010-July-date -rw-rw---- 1 root mailman 4.6K Jul 29 13:36 2010-July-subject -rw-rw---- 1 root mailman 3.9K Jul 29 13:36 2010-July-thread
/var/lib/mailman/lists/listname
drwxrwsr-x 2 root mailman 4.0K Jul 29 13:17 . drwxrwsr-x 194 root mailman 12K Jul 6 21:51 .. -rw-rw---- 1 root mailman 1.7K Jul 6 21:51 admindbpreamble.html -rw-rw---- 1 root mailman 8.9K Jul 6 21:51 config.db -rw-rw---- 1 root mailman 8.9K Jul 6 21:51 config.db.last -rw-rw---- 1 apache mailman 14K Jul 29 13:17 config.pck -rw-rw---- 1 mailman mailman 14K Jul 29 00:54 config.pck.last -rw-rw---- 1 root mailman 12K Jul 27 18:42 digest.mbox -rw-rw---- 1 root mailman 189 Jul 6 21:51 handle_opts.html -rw-rw---- 1 root mailman 1.1K Jul 6 21:51 headfoot.html -rw-rw---- 1 root mailman 3.1K Jul 6 21:51 listinfo.html -rw-rw---- 1 root mailman 4.1K Jul 6 21:51 options.html -rw-rw---- 1 mailman mailman 46 Jul 29 00:54 pending.pck -rw-rw---- 1 root mailman 2 Jul 6 21:51 request.db -rw-rw---- 1 mailman mailman 13K Jul 6 21:51 request.pck -rw-rw---- 1 root mailman 1.2K Jul 6 21:51 roster.html -rw-rw---- 1 root mailman 198 Jul 6 21:51 subscribe.html
After setting these permissions the mailman server resumed normal operations. It looks like apache will take over the files that are edited directly from the web interface. That should be ok. The main problem is giving mailman read/write access to the files that it needs to update and maintain the mailing list archives. Trust me, if mailman can’t access any of these files it will move the message quietly over to the /var/spool/mailman/shunt directory. Nobody wants that. Once you resolve any permissions issues be sure to restart the mailman daemon. To remove e-mail from the shunt directory run /usr/lib/mailman/bin/unshunt.