Linux AppArmor用“拒绝执行”;“没有新的特权”;当非特权=否时

Linux AppArmor用“拒绝执行”;“没有新的特权”;当非特权=否时,linux,embedded-linux,systemd,apparmor,Linux,Embedded Linux,Systemd,Apparmor,在尝试限制我的Python应用程序之后,我一直在关注这些AppArmor消息 [ 1808.635237] audit: type=1400 audit(1600600443.250:50): apparmor="DENIED" operation="exec" info="no new privs" error=-1 profile="/var/www/localhost/fastcgi/api.py" name=

在尝试限制我的Python应用程序之后,我一直在关注这些AppArmor消息

[ 1808.635237] audit: type=1400 audit(1600600443.250:50): apparmor="DENIED" operation="exec"
info="no new privs" error=-1 profile="/var/www/localhost/fastcgi/api.py"
name="/usr/bin/python3" pid=5672 comm="api" requested_mask="x" denied_mask="x" fsuid=42 ouid=0
使用此配置文件(由aa logprog生成)

#包括
profile/var/www/localhost/fastcgi/api.py flags=(连接已断开){
#include我注意到
api.service
确实设置了
NoNewPrivileges=yes
。因此我将其更改为
NoNewPrivileges=no
(并重新加载了服务),但这并没有改变任何事情。行为仍然完全相同

是一旦任务处于无新权限下,则不允许更改其配置文件 并可能增加其权限。有一个例外是 无约束状态,因为任何剖面过渡都是 特权。 因此,在时刻ix(inherit)剩下两个可能的转换 当前限制)和堆叠。堆叠可能不是什么 您希望它保持当前限制,并添加其他限制 顶部的限制

你知道还有什么原因吗?找到了

ProtectHostname=yes似乎表示非特权=yes

#include <tunables/global>

profile /var/www/localhost/fastcgi/api.py flags=(attach_disconnected) {
  #include <abstractions/base>

  # Python:
  /usr/bin/python3{,.[7-9]} Cx,

  ^/usr/bin/python3{,.[7-9]} flags=(attach_disconnected) {
    #include <abstractions/base>

    /usr/bin/python3{,.[7-9]} mr,
  }
}