
Now that I've got it going, I could not stop myself from sharing this with you.
What do I mean by multi-domain mailman list server, you may be wondering? Well, imagine you have two development projects, foobar and bazbah, and each has their own domain name; foobar.org and bazbah.org.
If you where to take a standard mailman installation, you could only have one announce, devel and users, and you would need to choose to which of the two projects to attach those lists.
Usually this makes mailman site administrators choose for another option: prefix the name of the list with the name of the project. Then juggle around the multiple domain name spaces for each list and hope the footers, archives and other pages work out (there's a command in mailman, called withlist, with which you can fix_url after changing the URL for a mailing list... right).
An alternative of course is to run multiple mailman instances. Being the RPM package management oriented guy that I am though, I want those multiple instances to be packaged properly, of course, and available through YUM repositories.
Furthermore, I'm a self-diagnosed Security Enhanced Linux fanboy.
So, what did I do?
First, I got the sources for the mailman package in Fedora Rawhide (no point in taking an older one). I modified the RPM spec file so that it would take an optional %{domain} parameter all the way through. Since I'm using something Fedora Rawhide on Enterprise Linux 6, I needed to clause the various references to systemd stuff as well. You can see the result here.
Then, I made me this little script that makes things happen including using the original spec to spit out specs for individual mailman instances, build the source RPMs, and submit the build to Koji.
Presumably, you'll get httpd_t SELinux AVC denials against mailman_cgi_exec_t;
type=AVC msg=audit(1330454256.738:564): avc: denied { search } for pid=12091 comm="httpd" \
name="cgi-bin" dev=dm-0 ino=1183684 scontext=unconfined_u:system_r:httpd_t:s0 \
tcontext=system_u:object_r:mailman_cgi_exec_t:s0 tclass=dir
type=AVC msg=audit(1330454256.738:565): avc: denied { getattr } for pid=12091 comm="httpd" \
path="/usr/lib/mailman-lists.syncrotron.org/cgi-bin" dev=dm-0 ino=1183684 \
scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:mailman_cgi_exec_t:s0 tclass=dir
This is resolved with a relatively small policy, easily deployed with the Puppetmanaged.org SELinux module. Include in your node manifest:
selinux::policy { "httpd_mailman": }
Furthermore, you should set the context for the files deployed by the RPM packages, as is shown in the Puppetmanaged.org mail module from line #94 onward.
Comments
.......
Если Вы надеетесь покупать трико за класс танца за моду или для шоу танца, есть несколько вещей, которые Вы должны знать. В зависимости от класса Вы следите, у Вас могут быть определенные типы оборудования, которое является более соответствующим. В балете это - хорошее эмпирическое правило всегда носить черные трико и балетное трико - по крайней мере, пока Вы не знаете, что политика Вас танцует школу. К счастью большинство наставников и школ обеспечат однородный список заранее Вашего первого урока.
Джазовые классы может быть менее установлен с точки зрения униформы, однако всегда убедиться, что носил соответствующее и особенно разработанное изнашивание танца. Напряженный класс может потребовать трико и балетного трико с шортами по ним. Причина этого состоит в том, что одежда будет сохранять Ваши мускулы теплыми, но позволять учителю видеть Ваши лучшие линии без барьера больших штанов разминки или мешковатых футболок. Трико - общее одеяние танца, потому что это - единственный способ, которым Вы можете действительно учиться, выгибаете ли Вы спину, поднимая туловище достаточно, или оказываясь бедрами правильно.
В определенных других стилях, таких как колебание, танцзал или латинский танец, трико являются школа танцев не всегда особенно соответствующими. Некоторые из этих уроков имеют тенденцию быть более случайными, классы новичка и люди носят удобную одежду, которая не показывает большую часть их тела., однако, уместно носить трико, если это - более интенсивный урок, где Вы будете делать много оригинальной хореографии, щелчков, вращений или расколов. у
Много местных студий танца нет профессионального костюмера, чтобы предоставить их выставочное оборудование им. Это тогда до учителя, отдельного танцора или родителей детей в классе, чтобы обеспечить оборудование.
Некоторые танцоры являются также превосходными костюмерами и могут даже сделать их собственную одежду. Это - вопрос, лучше всего оставленный тем с некоторым обучением или с опытом, поскольку изнашивание танца должно быть хорошо разработано и соединено. Одна вещь помнить, делаете ли Вы свои собственные костюмы, состоит в том, что, если Вы шьете что-то на трико (как блестки или листья или что-либо жесткое) оно сделает трико твердым и неспособным простираться, так же как оно могло бы. Имейте в виду, что, если Вы шьете большую часть чего-то жесткого, как блестки, на трико, будет трудно преуспеть и выйти так или иначе. Попытайтесь держать художественные оформления как этот к минимуму, только для простоты танцора. Он или она также не будет в состоянии двинуться как свободно, если их оборудование будет намазано на всем протяжении с жестким материалом. Это может уменьшить его или её способность к танцу.
, Если Вы хотите покупать некоторые простые трико, чтобы украсить для работы, не забывают принимать во внимание гибкость, в которой предмет одежды будет нуждаться, комфорт танцора и общая практичность. Для любого плохо знакомого с уроками танцев, покупка основных трико является, вероятно, самым мудрым выбором. Это обычно оказывается наиболее экономически выгодным и позволяет танцору концентрироваться на освоении с их собственными шагами, который в танце является лучшим путем к успеху!
.......
_,articles make your mind up to do it nearly all of writer in go well email me.
more policy
I found on F16 I also needed policy to allow sendmail_t to pipe to the mailman delivery scripts via /etc/aliases:
test: "|mailman-domsch.com post test"
module looks like:I forwarded to Dan Walsh. There may be a better way to solve this...
shoutout!
http://domsch.com/blog/?p=570
...
Because I run a few mailing lists using mailman, across multiple domains, I of course wanted to run several separate instances of mailman, one for each domain. Fedora has a SELinux-aware mailman package just a quick yum install away. The problem is, the SELinux file context rules are written expecting only one instance of mailman per server. That’s when I remembered a recent blog post by Dutch where he had patched the mailman spec and config files to build separate mailman-${sitename} RPMs, each with their own correct SELinux contexts. Very cool, and exactly what I needed. Well, almost – he did his work on EL6, I’m running Fedora 16, but close enough (see his blog comments for the few changes necessary on F16). Thanks to Dutch, I’ve got a fully SELinux-secured web and mail server with separate mailman instances for each domain.
...
sweet!
Thanks much for this. I moved my domains to a new cloud provider this week, and ran into exactly this problem. I took your spec and was able to get it to work now. Thanks!
One note: the systemd service files didn't get the mailman -> mailman-$name change, so they get installed incorrectly. Not a problem on el6, but bit me on f16. Also, the selinux file_contexts.local changes needed are different on f16. The easiest way to find them all is to grep mailman /etc/selinux/targeted/contexts/files/file_contexts. Maybe you can push your changes back upstream to Fedora, and get Dan to add these regexps to the default file_contexts. :-)
Thanks!