禁用“创建邮件列表”选项

禁用“创建邮件列表”选项

如何禁用在管理页面上向公众显示的“创建新邮件列表”选项。

例子: http://mm.gnu.org.in/cgi-bin/mailman/admin

答案1

你可以更改/usr/lib/mailman/Mailman/Cgi/admin.py。记得备份!

原来的:

    creatorurl = Utils.ScriptURL('create')
    mailman_owner = Utils.get_site_email()
    extra = msg and _('right ') or ''
    welcome.extend([
        _('''To visit the administrators configuration page for an
        unadvertised list, open a URL similar to this one, but with a '/' and
        the %(extra)slist name appended.  If you have the proper authority,
        you can also <a href="%(creatorurl)s">create a new mailing list</a>.

        <p>General list information can be found at '''),
        Link(Utils.ScriptURL('listinfo'),
             _('the mailing list overview page')),
        '.',
        _('<p>(Send questions and comments to '),
        Link('mailto:%s' % mailman_owner, mailman_owner),
        '.)<p>',
        ])

未创建链接的版本:

    creatorurl = Utils.ScriptURL('create')
    mailman_owner = Utils.get_site_email()
    extra = msg and _('right ') or ''
    welcome.extend([
        _('''To visit the administrators configuration page for an
        unadvertised list, open a URL similar to this one, but with a '/' and
        the %(extra)slist name appended.

        <p>General list information can be found at '''),
        Link(Utils.ScriptURL('listinfo'),
             _('the mailing list overview page')),
        '.',
        _('<p>(Send questions and comments to '),
        Link('mailto:%s' % mailman_owner, mailman_owner),
        '.)<p>',
        ])

请记住,这不会禁用新列表的创建,而只是隐藏链接!因此,您仍然需要有一个好的列表创建密码!

答案2

这是挖掘一个非常古老的话题,但这就是我实现它的方法,不涉及破解 Python。我只是在 apache 配置中重定向 URL。

在 Ubuntu 上,它是/etc/apache2/sites-available/mailman.conf。添加此行:

Redirect /mailman/create /mailman/admin

还有优雅的阿帕奇:

/etc/init.d/apache2 graceful

任何尝试加载http://example.com/mailman/create只会重定向到http://example.com/mailman/admin

答案3

我只是删除了链接并更改 /var/lib/mailman/Mailman/Cgi/listinfo.py 而不是 admin.py 。并添加 (at) 如下所示,mailman_owner = Utils.get_site_email() welcome.extend([ _('''要访问未公布列表的管理员配置页面,请打开类似于此的 URL,但带有 '/' 和 %(extra)slist 名称附加。

    <p>General list information can be found at '''),
    Link(Utils.ScriptURL('listinfo'),
         _('the mailing list overview page')),
    '.',
    _('<p>(Send questions and comments to '),
    ('mailman (at) mail.domain.com'),
    '.)<p>',
    ])

当我们在邮递员的第一页看到所有列表都没有链接到邮件时,如果我们考虑垃圾邮件发送者,这是最有效的。

答案4

您可以让 apache 密码保护创建脚本 - 这样您的管理员仍然可以使用它(尽管使用单独的凭据)。

这是 mailman 在我的 apache 配置文件中放入的内容:

    ScriptAlias /cgi-bin/ /path/to/cgi-bin/
    <Directory "/path/to/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

我添加了这个:

    # For some reason, +SymLinksIfOwnerMatch causes apache to not apply auth
    <Directory "/path/to/cgi-bin/mailman/">
            Options -SymLinksIfOwnerMatch
    </Directory>
    <Directory "/path/to/cgi-bin/mailman/create">
            AuthType Basic
            AuthName "Authentication required"
            AuthUserFile "/path/to/mailmanusers"
            Require valid-user
    </Directory>

创建了包含一个用户的 AuthUserFile,内容如下:

htpasswd -c /path/to/mailmanusers myusername

相关内容