Mailman Webinterface 管理请求不起作用

Mailman Webinterface 管理请求不起作用

我已经在 Ubuntu 14.04 LTS、Postfix 和 Apache 上设置了 Mailman 2.1.16。

通过中继主机发送邮件工作正常,我可以使用 Mailman 的 Web 界面。但 Web 界面对管理请求(订阅请求和保留消息)没有任何作用。这些请求必须由管理员接受,但当我单击“提交所有数据”时,什么也没有发生。

/var/log/mailman/error 显示错误,但时间戳与我的问题无关:

Sep 13 01:54:25 2014 (1161) send_digests() failed: [Errno 13] Permission denied: '/var/lib/mailman/archives/private/hsg/attachments'
Sep 13 01:54:25 2014 (1161) Traceback (most recent call last):
  File "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 99, in process
    send_digests(mlist, mboxfp)
  File "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 147, in send_digests
    send_i18n_digests(mlist, mboxfp)
  File "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 329, in send_i18n_digests
    msg = scrubber(mlist, msg)
  File "/var/lib/mailman/Mailman/Handlers/Scrubber.py", line 253, in process
    url = save_attachment(mlist, part, dir, filter_html=False)
  File "/var/lib/mailman/Mailman/Handlers/Scrubber.py", line 419, in save_attachment
    makedirs(fsdir)
  File "/var/lib/mailman/Mailman/Handlers/Scrubber.py", line 406, in makedirs
    os.makedirs(dir, 02775)
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/var/lib/mailman/archives/private/hsg/attachments'

check_perms -f 给出以下错误:

sudo /usr/lib/mailman/bin/check_perms -f
/var/lib/mailman/icons falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/Mailman falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/mail falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/templates falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/scripts falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/locks falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/logs falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/cron falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/cgi-bin falsche GID (ist: root, soll: list) (korrigiere)
/var/lib/mailman/bin falsche GID (ist: root, soll: list) (korrigiere)

看来 check_perms 无法解决这个问题。这些文件夹都是符号链接,我手动设置了权限,但什么也没发生。

有什么想法吗?有没有什么方法可以调试 Web 界面?

答案1

问题是“错误”的权限是在符号链接上,而不是实际的目录或文件上:

% ll /var/lib/mailman
drwxrwsr-x  4 root list 4096 Nov  2 05:43 archives/
lrwxrwxrwx  1 root root   20 Feb  3  2014 bin -> /usr/lib/mailman/bin/
lrwxrwxrwx  1 root root   24 Feb  3  2014 cgi-bin -> /usr/lib/cgi-bin/mailman/
lrwxrwxrwx  1 root root   21 Feb  3  2014 cron -> /usr/lib/mailman/cron/
drwxrwsr-x  2 root list 4096 Nov  2 05:47 data/
lrwxrwxrwx  1 root root   25 Feb  3  2014 icons -> /usr/share/images/mailman/
drwxrwsr-x  3 root list 4096 Nov  2 05:52 lists/
. . .

在 Ubuntu(所有 Debian?)上,符号链接权限实际上并不重要 - 重要的是其目标的实际权限。尝试更改符号链接的权限将会悄然失败(这就是运行 check_perms 不会执行任何操作的原因)

解决方案是在 chown 上使用 -h 标志:

chown(1) - Linux 手册页

-h, --no-dereference

影响每个符号链接而不是任何引用的文件(仅在可以更改符号链接所有权的系统上有用)

使用 chown -h 命令,然后运行 ​​check_perms 现在应该不会产生任何错误:

% sudo chown -h root:list /var/lib/mailman/*

% sudo /usr/lib/mailman/bin/check_perms -f
No problems found

不过,我不认为这是你的实际问题- 如果您查看,错误不是在您的 check_perms 通知中输出的任何符号链接上引发的,而是在 /archives 中的子目录中引发的,根据您的 check_perm 输出,该子目录具有适当的权限(没有引发“修复”消息)。我不知道这是文件或目录的读取权限还是执行权限,但检查附件目录应该会对此有所了解。

答案2

检查你的 mailman 权限。这些错误可能是由 中的无效权限引起的/var/lib/mailman/。要修复权限,请运行此命令

sudo /usr/lib/mailman/bin/check_perms -f 

有关该命令的文档,请参阅这一页

相关内容