# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only

abi <abi/4.0>,

include <tunables/global>

@{exec_path} = @{lib}/systemd/system-generators/systemd-gpt-auto-generator
@{att} = /att/systemd-generator-gpt-auto/
profile systemd-generator-gpt-auto /{,usr/}lib{,exec,32,64}/systemd/system-generators/systemd-gpt-auto-generator   flags=(attach_disconnected,attach_disconnected.path=@{att},complain) {
  include <abstractions/attached/base>
  include <abstractions/disks-read>
  include <abstractions/common/systemd>

  capability sys_admin,

  ptrace read peer=@{p_systemd},

  @{exec_path} mr,

  / r,
  @{efi}/ r,
  /etc/fstab r,
  /usr/ r,
  /home/ r,

  @{run}/systemd/generator.late/**.{,auto}mount w,
  @{run}/systemd/generator.late/**.swap w,
  @{run}/systemd/generator.late/home.mount.wants/ w,
  @{run}/systemd/generator.late/swap.target.wants/ w,
  @{run}/systemd/generator.late/local-fs.target.d/ w,
  @{run}/systemd/generator.late/local-fs.target.d/*.conf w,
  @{run}/systemd/generator.late/local-fs.target.requires/ w,
  @{run}/systemd/generator.late/local-fs.target.wants/ w,

  @{sys}/firmware/efi/efivars/LoaderDevicePartUUID-@{uuid} r,

  @{PROC}/@{pid}/cgroup r,

  include if exists <local/systemd-generator-gpt-auto>
}

# vim:syntax=apparmor
