146 lines
4.6 KiB
Text
146 lines
4.6 KiB
Text
# apparmor.d - Full set of apparmor profiles
|
|
# Copyright (C) 2017-2022 Mikhail Morfikov
|
|
# Copyright (C) 2021-2022 Alexandre Pujol <alexandre@pujol.io>
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
abi <abi/3.0>,
|
|
|
|
include <tunables/global>
|
|
|
|
@{exec_path} = @{bin}/gnome-keyring-daemon
|
|
profile gnome-keyring-daemon @{exec_path} flags=(attach_disconnected) {
|
|
include <abstractions/base>
|
|
include <abstractions/dbus-session-strict>
|
|
include <abstractions/dbus-strict>
|
|
include <abstractions/openssl>
|
|
|
|
capability ipc_lock,
|
|
|
|
signal (receive) set=(term) peer=gdm,
|
|
signal (send) set=(term) peer=ssh-agent,
|
|
|
|
dbus send bus=session path=/org/freedesktop/DBus
|
|
interface=org.freedesktop.DBus
|
|
member={RequestName,ReleaseName}
|
|
peer=(name=org.freedesktop.DBus, label=dbus-daemon),
|
|
|
|
dbus send bus=system path=/org/freedesktop/login[0-9]/session/*
|
|
interface=org.freedesktop.DBus.Properties
|
|
member=Get
|
|
peer=(name=org.freedesktop.login[0-9]),
|
|
|
|
dbus receive bus=system path=/org/freedesktop/login[0-9]/session/*
|
|
interface=org.freedesktop.DBus.Properties
|
|
member=PropertiesChanged
|
|
peer=(name=:*, label=systemd-logind),
|
|
|
|
dbus send bus=system path=/org/freedesktop/login[0-9]
|
|
interface=org.freedesktop.login[0-9].Manager
|
|
member=GetSession
|
|
peer=(name=org.freedesktop.login[0-9]),
|
|
|
|
dbus send bus=session path=/org/gnome/SessionManager
|
|
interface=org.gnome.SessionManager
|
|
peer=(name=org.gnome.SessionManager, label=gnome-session-binary),
|
|
|
|
dbus (send, receive) bus=session path=/org/gnome/keyring/daemon
|
|
interface=org.gnome.keyring.Daemon
|
|
peer=(name="{org.gnome.keyring,:*}", label=@{profile_name}), # all members
|
|
|
|
dbus receive bus=session path=/org/freedesktop/secrets
|
|
interface=org.freedesktop.DBus.Properties
|
|
member=GetAll
|
|
peer=(name=:*, label=gnome-shell),
|
|
|
|
dbus receive bus=session path=/org/freedesktop/secrets
|
|
interface=org.freedesktop.Secret.Service
|
|
member=SearchItems
|
|
peer=(name=:*, label=gnome-shell),
|
|
|
|
dbus receive bus=session path=/org/freedesktop/secrets/aliases/default
|
|
interface=org.freedesktop.Secret.Collection
|
|
member=CreateItem
|
|
peer=(name=:*),
|
|
|
|
dbus receive bus=session path=/org/freedesktop/secrets/aliases/default
|
|
interface=org.freedesktop.DBus.Properties
|
|
member=GetAll
|
|
peer=(name=:*),
|
|
|
|
dbus send bus=session path=/org/freedesktop/secrets/collection/login
|
|
interface=org.freedesktop.Secret.Collection
|
|
member=ItemCreated
|
|
peer=(name=org.freedesktop.DBus),
|
|
|
|
dbus send bus=session path=/org/freedesktop/secrets/collection/login
|
|
interface=org.freedesktop.DBus.Properties
|
|
member=PropertiesChanged
|
|
peer=(name=org.freedesktop.DBus),
|
|
|
|
dbus receive bus=session path=/org/freedesktop/secrets
|
|
interface=org.freedesktop.Secret.Service
|
|
member={ReadAlias,OpenSession}
|
|
peer=(name=:*),
|
|
|
|
dbus receive bus=session path=/org/freedesktop/secrets/collection/login/[0-9]*
|
|
interface=org.freedesktop.Secret.Item
|
|
member=GetSecret
|
|
peer=(name=:*),
|
|
|
|
dbus receive bus=session path=/org/freedesktop/secrets{,/collection/**}
|
|
interface=org.freedesktop.DBus.Properties
|
|
member=GetAll
|
|
peer=(name=:*),
|
|
|
|
dbus receive bus=session path=/org/freedesktop/portal/desktop
|
|
interface=org.freedesktop.DBus.Properties
|
|
member=GetAll
|
|
peer=(name=:*, label=xdg-desktop-portal),
|
|
|
|
dbus receive bus=session
|
|
interface=org.freedesktop.DBus.Introspectable
|
|
member=Introspect
|
|
peer=(name=:*, label=gnome-shell),
|
|
|
|
dbus receive bus=session path=/org/freedesktop/secrets
|
|
interface=org.freedesktop.Secret.Service
|
|
member={GetSecrets,SearchItems}
|
|
peer=(name=:*), # label="{unconfined,remmina}"),
|
|
|
|
dbus bind bus=session
|
|
name=org.gnome.keyring,
|
|
|
|
dbus bind bus=session
|
|
name=org.freedesktop.secrets,
|
|
|
|
@{exec_path} mr,
|
|
|
|
@{bin}/ssh-add rix,
|
|
@{bin}/ssh-agent rPx,
|
|
|
|
/etc/gcrypt/hwf.deny r,
|
|
|
|
/var/lib/gdm{3,}/.local/ rw,
|
|
/var/lib/gdm{3,}/.local/share/ rw,
|
|
/var/lib/gdm{3,}/.local/share/keyrings/ rw,
|
|
|
|
# Keyrings location
|
|
owner @{user_share_dirs}/keyrings/ rw,
|
|
owner @{user_share_dirs}/keyrings/* rwl,
|
|
|
|
# Seahorse and SSH keys
|
|
owner @{HOME}/@{XDG_SSH_DIR}/{,**} r,
|
|
|
|
owner @{HOME}/.local/ w,
|
|
owner @{user_share_dirs}/ w,
|
|
owner @{HOME}/.xsession-errors w,
|
|
|
|
owner @{run}/user/@{uid}/keyring/ rw,
|
|
owner @{run}/user/@{uid}/keyring/* rw,
|
|
owner @{run}/user/@{uid}/ssh-askpass.[0-9A-Z]*/{,*} rw,
|
|
@{run}/user/@{uid}/keyring/control r,
|
|
|
|
owner @{PROC}/@{pid}/fd/ r,
|
|
|
|
include if exists <local/gnome-keyring-daemon>
|
|
}
|