#! /usr/bin/python
import os
import grp
import errno
from stat import *
def dodir(d):
    gid = grp.getgrnam('list').gr_gid
    for nm in os.listdir(d):
        fn = os.path.join(d, nm)
        try:
            st = os.stat(fn)
        except OSError, e:
            if e.errno == errno.ENOENT:
                continue
            else:
                raise
        if st.st_gid != gid:
            print '%s not group list, fixing' % fn
            os.chown(fn, -1, gid)
        if (os.path.isdir(fn) or
                d == '/var/lib/mailman/mail' or
                d == '/var/lib/mailman/cgi-bin'):
            if not st.st_mode & S_ISGID:
                print '%s not SETGID, fixing' % fn
                os.chmod(fn, st.st_mode | S_ISGID)
            if os.path.isdir(fn):
                dodir(fn)
dodir('/var/lib/mailman')
