apparmor/profiles/apparmor.d/php-fpm
Christian Boltz 480cb56553 Merge profiles: permit php-fpm pid files directly under run/
The upstream php-fpm.conf file carries the following pid file example
path:
  [global]
  ; Pid file
  ; Note: the default prefix is @EXPANDED_LOCALSTATEDIR@
  ; Default Value: none
  ;pid = run/php-fpm.pid

Add this path to profiles/apparmor.d/php-fpm, alongside the current
nested "@{run}/php{,-fpm}/php*-fpm.pid" wildcard.

Fixes: https://gitlab.com/apparmor/apparmor/-/issues/267

Suggested-by: Ali Abdallah <ali.abdallah@suse.com>
Signed-off-by: David Disseldorp <ddiss@suse.de>

Closes #267
MR: https://gitlab.com/apparmor/apparmor/-/merge_requests/914
Approved-by: Christian Boltz <apparmor@cboltz.de>
Merged-by: Christian Boltz <apparmor@cboltz.de>


(cherry picked from commit d024100efe)

d8533ec8 profiles: permit php-fpm pid files directly under run/
2022-08-26 10:36:11 +00:00

59 lines
1.7 KiB
Text

# vim: ft=apparmor
abi <abi/3.0>,
include <tunables/global>
profile php-fpm /usr/sbin/php-fpm* flags=(attach_disconnected) {
# load common libraries and their support files
include <abstractions/base>
# resolve hostnames/usernames
include <abstractions/nameservice>
# common php files and support files that php needs
include <abstractions/php>
# read openssl configuration
include <abstractions/openssl>
# read the system certificates
include <abstractions/ssl_certs>
capability net_admin,
# change user/group of a pool
capability setuid,
capability setgid,
# change ownership of the socket so that we can launch with a different user/group as the socket will be owned by
capability chown,
# we want to be able to kill our child processes
capability kill,
# to provide sockets with acls different than root
capability dac_override,
# we need write access here to move it into a different apparmor sub profile
@{PROC}/@{pid}/attr/{apparmor/,}current rw,
# the main log file
/var/log/php*-fpm.log rw,
# we need to be able to create all sockets
@{run}/php{,-fpm}/php*-fpm.pid rw,
@{run}/php*-fpm.pid rw,
@{run}/php{,-fpm}/php*-fpm.sock rwlk,
# to reload
/usr/sbin/php-fpm* rix,
# no idea why php tries to open / read/write
deny / rw,
# allow sending signals to our subprocesses
signal (send) peer=php-fpm//*,
# allow switching processes to those subprofiles
change_profile -> php-fpm//*,
# load all files from this directory
# store your configurations per pool in this dir
include if exists <php-fpm.d>
# Site-specific additions and overrides. See local/README for details.
include if exists <local/php-fpm>
}