# apparmor.d - Full set of apparmor profiles # Copyright (C) 2021 Alexandre Pujol # SPDX-License-Identifier: GPL-2.0-only abi , include @{exec_path} = @{libexec}/gsd-keyboard profile gsd-keyboard @{exec_path} flags=(attach_disconnected) { include include include include include include include include include include signal (receive) set=(term, hup) peer=gdm*, 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/locale[0-9] interface=org.freedesktop.DBus.Properties member=GetAll, dbus send bus=session path=/org/gtk/Settings interface=org.freedesktop.DBus.Properties member=GetAll peer=(name=:*, label=gsd-xsettings), dbus (send, receive) bus=session path=/org/gnome/SessionManager{,/Client[0-9]*} interface=org.freedesktop.DBus.Properties member={GetAll,PropertiesChanged} peer=(name=:*, label=gnome-session-binary), dbus send bus=session path=/org/gnome/SessionManager/Client[0-9]* interface=org.gnome.SessionManager.ClientPrivate member=EndSessionResponse peer=(name=:*, label=gnome-session-binary), dbus receive bus=session path=/org/gnome/SessionManager/Client[0-9]* interface=org.gnome.SessionManager.ClientPrivate member={CancelEndSession,QueryEndSession,EndSession,Stop} peer=(name=:*, label=gnome-session-binary), dbus send bus=session path=/org/gnome/SessionManager interface=org.gnome.SessionManager member=RegisterClient peer=(name=:*, label=gnome-session-binary), dbus receive bus=session path=/org/gnome/SessionManager interface=org.gnome.SessionManager member={ClientAdded,SessionRunning,ClientRemoved,InhibitorRemoved,InhibitorAdded} peer=(name=:*, label=gnome-session-binary), dbus send bus=session path=/org/a11y/bus interface=org.a11y.Bus member=GetAddress peer=(name=org.a11y.Bus), # all peer's labels dbus send bus=accessibility path=/org/a11y/atspi/registry interface=org.a11y.atspi.Registry member=GetRegisteredEvents peer=(name=org.a11y.atspi.Registry), # all peer's labels dbus send bus=accessibility path=/org/a11y/atspi/registry/deviceeventcontroller interface=org.a11y.atspi.DeviceEventController member={GetKeystrokeListeners,GetDeviceEventListeners} peer=(name=org.a11y.atspi.Registry), # all peer's labels dbus send bus=accessibility path=/org/a11y/atspi/accessible/root interface=org.a11y.atspi.Socket member=Embed peer=(name=org.a11y.atspi.Registry), # all peer's labels dbus send bus=session path=/org/gtk/vfs/mounttracker interface=org.gtk.vfs.MountTracker member=ListMountableInfo peer=(name=:*, label=gvfsd), dbus receive bus=session path=/ interface=org.freedesktop.DBus.Introspectable member=Introspect peer=(name=:*, label=gnome-shell), dbus bind bus=session name=org.gnome.SettingsDaemon.Keyboard, @{exec_path} mr, /usr/share/dconf/profile/gdm r, /usr/share/gdm/greeter-dconf-defaults r, /usr/share/glib-2.0/schemas/gschemas.compiled r, /usr/share/icons/{,**} r, /usr/share/X11/xkb/** r, /var/lib/gdm{3,}/.config/dconf/user r, /var/lib/gdm{3,}/greeter-dconf-defaults r, /var/lib/gdm{3,}/.config/.gsd-keyboard.settings-ported* rw, owner @{user_config_dirs}/.gsd-keyboard.settings-ported* rw, owner @{user_share_dirs}/gnome-settings-daemon/{,input-sources*} rw, owner @{run}/user/@{uid}/gdm/Xauthority r, owner /dev/tty[0-9]* rw, include if exists }