1

我有一个 R 包,它通过 Rmpi​​ 包向我运行的 OpenMPI 集群发送作业。在从控制台运行的 R 会话中,一切都按预期工作。但是,当我尝试像这样从我的 OpenCPU 服务器执行相关功能时(更改了细节以保护无辜者):

curl -XPOST http://99.999.999.99/ocpu/library/MyPackage/R/my_cluster_function

我收到此错误:

R call failed: process died.

(包中的其他非集群调用函数可以通过 OpenCPU 正常工作)。我注意到apparmor/var/log/kern.log的各种请求DENIED,我已经能够通过添加条目来解决其中的大部分请求,/etc/apparmor.d/opencpu.d/custom以允许 OpenMPI 访问它需要的文件。但是,我无法解决与“打开”位置请求相关的这两个问题(同样,IP 地址已更改)"/"

Oct 26 03:49:58 99.999.999.99 kernel: [142952.551234] type=1400 audit(1414295398.849:957): apparmor="DENIED" operation="open" profile="opencpu-main" name="/" pid=22486 comm="orted" requested_mask="r" denied_mask="r" fsuid=33 ouid=0
Oct 26 03:49:58 99.999.999.99 kernel: [142952.556422] type=1400 audit(1414295398.857:958): apparmor="DENIED" operation="open" profile="opencpu-main" name="/" pid=22485 comm="apache2" requested_mask="r" denied_mask="r" fsuid=33 ouid=0

将此添加到我的 apparmor 规则没有帮助:

/* r,

两个问题:

  1. 为什么opencpu 试图从我的根目录中读取(或者这是否意味着别的)?
  2. 更紧迫的是,我该如何解决这个 apparmor 问题?

谢谢。

4

1 回答 1

1

您可能需要添加两个 apparmor 规则

/ r,
/* r,

第一条规则允许列出目录/,第二条规则允许读取/.

我不明白为什么Rmpi要阅读/或为什么会process died出错而不是拒绝访问。你确定问题完全解决了吗?

于 2014-10-26T19:15:06.087 回答