apparmor.d/apparmor.d/groups/freedesktop/xdg-document-portal
2022-08-19 19:25:22 +01:00

83 lines
No EOL
1.8 KiB
Text

# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2021 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/3.0>,
include <tunables/global>
@{exec_path} = @{libexec}/xdg-document-portal
profile xdg-document-portal @{exec_path} {
include <abstractions/base>
ptrace (read) peer=xdg-desktop-portal,
unix (send receive) type=stream peer=(label=xdg-document-portal//fusermount),
@{exec_path} mr,
/{usr/,}bin/flatpak rCx -> flatpak,
/{usr/,}bin/fusermount{,3} rCx -> fusermount,
/ r,
owner @{user_share_dirs}/flatpak/db/documents r,
owner @{run}/user/@{uid}/bus rw,
owner @{run}/user/@{uid}/doc/ rw,
owner @{PROC}/@{pid}/fd/ r,
owner @{PROC}/@{pid}/cgroup r,
@{PROC}/1/cgroup r,
@{PROC}/sys/fs/pipe-max-size r,
/dev/fuse rw,
profile flatpak {
include <abstractions/base>
/{usr/,}bin/flatpak mr,
/ r,
/etc/flatpak/remotes.d/{,*} r,
owner @{user_cache_dirs}/flatpak/{,**} r,
owner @{user_config_dirs}/user-dirs.dirs r,
owner @{user_share_dirs}/flatpak/{,**} r,
/var/lib/flatpak/{,**} rw,
@{PROC}/sys/kernel/random/boot_id r,
/dev/tty rw,
}
profile fusermount {
include <abstractions/base>
include <abstractions/nameservice-strict>
capability sys_admin,
capability dac_read_search,
unix (send receive) type=stream peer=(label=xdg-document-portal),
# network inet stream,
# network inet6 stream,
/{usr/,}bin/fusermount{,3} mr,
/etc/fuse.conf r,
mount options=(rw, rprivate) -> /,
mount options=(rw, rbind) @{run}/user/@{uid}/ -> /,
mount fstype=fuse.portal -> @{run}/user/@{uid}/doc/,
umount @{run}/user/@{uid}/doc/,
@{PROC}/@{pids}/mounts r,
/dev/fuse rw,
}
include if exists <local/xdg-document-portal>
}