Apparmor PHP8.1 请求对“/”的读写权限

Apparmor PHP8.1 请求对“/”的读写权限

我正在为 php(特别是 8.1)编写一个 apparmor 配置文件,但我的 php 特定配置(这是针对运行 dokuwiki 的网络服务器)遇到了一些问题。

我已将所有功能列入白名单,但最后一点是 php 想要对“/”进行读写访问。显然这不是好的行为,我不确定它为什么需要这样做?我没有编写 dokuwiki 使用的任何 php 脚本,所以这是他们的 php 代码的问题还是我可以通过配置修复的问题?

Apr 02 11:52:31 wiki audit[203102]: AVC apparmor="DENIED" operation="file_mmap" profile="/usr/sbin/php-fpm8.1" name="/" pid=203102 comm="php-fpm8.1" requested_mask="wr" denied_mask="wr" fsuid=0 ouid=0
Apr 02 11:52:31 wiki kernel: audit: type=1400 audit(1680450751.151:3038): apparmor="DENIED" operation="file_mmap" profile="/usr/sbin/php-fpm8.1" name="/" pid=203102 comm="php-fpm8.1" requested_mask="wr" denied_mask="wr" fsuid=0 ouid=0

我的简历:

include <tunables/global>

/usr/sbin/php-fpm8.1 flags=(attach_disconnected) {
  include <abstractions/base>
  include <abstractions/nameservice>
  include <abstractions/openssl>
  include <abstractions/php>
  include <abstractions/user-tmp>

  capability net_admin,
  capability dac_override,
  capability kill,
  capability chown,
  capability setgid,
  capability setuid,

  /usr/sbin/php-fpm8.1 mr,
  owner /proc/sys/kernel/random/boot_id r,
  owner /run/systemd/userdb/ r,
  owner /var/log/php* w,

  # Data Directory
  owner /var/www/dokuwiki/** rw,
}

php抽象:

  # shared snippets for config files
  /etc/php/{7??,8??}/** r,

  # Xlibs
  /usr/X11R6/lib{,32,64}/lib*.so* mr,
  # php extensions
  /usr/lib{64,}/php{,7*,8*}/*/*.so mr,

  # ICU (unicode support) data tables
  /usr/share/icu/*/*.dat r,

  # php sock and pid files
  /run/php/** rw,

  # php session mmap socket
  /var/lib/php{,7*,8*}/session_mm_* rwlk,
  # file based session handler
  /var/lib/php{,7*,8*}/sess_* rwlk,
  /var/lib/php{,7*,8*}/sessions/* rwlk,

  # php libraries
  /usr/share/php{,7*,8*}/ r,
  /usr/share/php{,7*,8*}/** mr,

  # MySQL extension
  /usr/share/mysql/** r,

  # Zend opcache
  /tmp/.ZendSem.* rwlk,

附注:我可以设置此选项: owner / rw, 这满足了 php 的要求。但仍然让我感到不舒服,有没有办法安全地授予此访问权限,或者所有者同样糟糕?

相关内容