Ejabberd 成为 Systemd 安全增强功能的受害者?

Ejabberd 成为 Systemd 安全增强功能的受害者?

我无法让 ejabberd 在安装在 Proxmox Linux 容器内的 Ubuntu 18.04 服务器上启动。

在安装过程中我收到此错误:

Setting up ejabberd (18.01-2) ...
Job for ejabberd.service failed because the control process exited with error code.
See "systemctl status ejabberd.service" and "journalctl -xe" for details.
invoke-rc.d: initscript ejabberd, action "start" failed.
* ejabberd.service - A distributed, fault-tolerant Jabber/XMPP server
   Loaded: loaded (/lib/systemd/system/ejabberd.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Mon 2019-04-22 18:41:58 UTC; 8ms ago
     Docs: https://www.process-one.net/en/ejabberd/docs/
   Process: 1442 ExecStart=/bin/sh -c /usr/sbin/ejabberdctl start && /usr/sbin/ejabberdctl started (code=exited, status=1/FAILURE)
 Main PID: 190 (code=exited, status=1/FAILURE)
dpkg: error processing package ejabberd (--configure):
 installed ejabberd package post-installation script subprocess returned error exit status 1
Processing triggers for systemd (237-3ubuntu10.20) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Errors were encountered while processing:
 ejabberd
E: Sub-process /usr/bin/dpkg returned an error code (1)

我阅读了一份错误报告,该报告表明该问题与使用 systemd 配置 Ejabberd 的方式有关:

https://bugs.launchpad.net/ubuntu/+source/ejabberd/+bug/1815699

该人士表示,该问题与以下 3 个设置有关:

  1. PrivateTmp=true
  2. 保护首页=true
  3. 保护系统=完整

但他没有说在哪里可以找到它们或如何更改它们。

我在这里找到它们:nano /lib/systemd/system/ejabberd.service

我尝试将它们设置为 false,将它们注释掉,等等。在尝试每次更改后,我都会重新启动容器并尝试测试聊天是否正常工作。事实并非如此。

我对 systemd 或 ejabberd 不太了解。我过去已经成功安装过几次 ejabberd,但我不知道如何解决这个问题。

答案1

https://salsa.debian.org/ejabberd-packaging-team/ejabberd/blob/master/debian/README.Debian#L161-168,或者在/usr/share/doc/ejabberd/README.Debian.gz您的系统上:

使用 systemd >= 218 您可以简单地创建一个覆盖 systemctl edit ejabberd.service并放置

[Service]
PrivateDevices=
PrivateDevices=false
NoNewPrivileges=
NoNewPrivileges=false

在那里。

相关内容