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

abi <abi/4.0>,

include <tunables/global>

@{exec_path} = @{bin}/systemd-tty-ask-password-agent
@{att} = /att/systemd-tty-ask-password-agent/
profile systemd-tty-ask-password-agent /{,usr/}bin/systemd-tty-ask-password-agent  flags=(attach_disconnected,attach_disconnected.path=@{att},complain) {
  include <abstractions/attached/base>
  include <abstractions/attached/consoles>
  include <abstractions/common/systemd>

  capability dac_override,
  capability dac_read_search,
  capability net_admin,
  capability sys_resource,
  capability sys_tty_config,

  ptrace read peer=systemd-cryptsetup,

  signal receive set=(term cont winch) peer=@{p_logrotate},
  signal receive set=(term cont winch) peer=*//systemctl,
  signal receive set=(term cont winch) peer=deb-systemd-invoke,
  signal receive set=(term cont winch) peer=default,
  signal receive set=(term cont winch) peer=machinectl,
  signal receive set=(term cont winch) peer=makepkg//sudo,
  signal receive set=(term cont winch) peer=role_*,
  signal receive set=(term cont winch) peer=rpm,

  @{exec_path} mrix,

  @{run}/systemd/ask-password-block/{,*} rw,
  @{run}/systemd/ask-password/{,*} rw,

  @{run}/user/@{uid}/ w,
  @{run}/user/@{uid}/systemd/ w,
  @{run}/user/@{uid}/systemd/ask-password/ rw,

  @{run}/utmp rk,

  @{run}/systemd/sessions/ r,
  @{run}/systemd/sessions/@{int} r,
  @{run}/systemd/sessions/c@{int} r,

  @{sys}/devices/virtual/tty/console/active r,
  @{sys}/devices/virtual/tty/tty@{int}/active r,

  @{PROC}/@{pids}/stat r,
  @{PROC}/1/environ r,
  @{PROC}/cmdline r,
  @{PROC}/sys/kernel/osrelease r,

  /dev/hvc@{int} rw,
  /dev/tty@{int} rw,
  /dev/ttyS@{int} rw,

  include if exists <local/systemd-tty-ask-password-agent>
}

# vim:syntax=apparmor
