apparmor.d/profiles/gsmartcontrol
2021-04-01 16:02:59 +01:00

120 lines
3.2 KiB
Text

# vim:syntax=apparmor
# ------------------------------------------------------------------
#
# Copyright (C) 2018-2021 Mikhail Morfikov
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public
# License published by the Free Software Foundation.
#
# ------------------------------------------------------------------
abi <abi/3.0>,
include <tunables/global>
@{exec_path} = /{usr/,}sbin/gsmartcontrol
profile gsmartcontrol @{exec_path} {
include <abstractions/base>
include <abstractions/gtk>
include <abstractions/fonts>
include <abstractions/fontconfig-cache-read>
include <abstractions/freedesktop.org>
include <abstractions/nameservice-strict>
include <abstractions/deny-dconf>
capability dac_read_search,
# Needed?
deny capability sys_nice,
@{exec_path} mr,
/{usr/,}sbin/smartctl rPx,
/{usr/,}bin/xterm rCx -> terminal,
# When gsmartcontrol is run as root, it wants to exec dbus-launch, and hence it creates the two
# following root processes:
# dbus-launch --autolaunch e0a30ad97cd6421c85247839ccef9db2 --binary-syntax --close-stderr
# /usr/bin/dbus-daemon --syslog-only --fork --print-pid 5 --print-address 7 --session
#
# Should this be allowed? Gsmartcontrol works fine without this.
#/{usr/,}bin/dbus-launch rCx -> dbus,
#/{usr/,}bin/dbus-send rCx -> dbus,
deny /{usr/,}bin/dbus-launch rx,
deny /{usr/,}bin/dbus-send rx,
owner @{HOME}/.config/gsmartcontrol/ rw,
owner @{HOME}/.config/gsmartcontrol/gsmartcontrol.conf rw,
# As it's started as root
@{HOME}/.Xauthority r,
owner @{PROC}/@{pid}/fd/ r,
owner @{PROC}/@{pid}/mountinfo r,
owner @{PROC}/@{pid}/mounts r,
owner @{PROC}/partitions r,
owner @{PROC}/devices r,
owner @{PROC}/scsi/scsi r,
owner @{PROC}/scsi/sg/devices r,
/etc/fstab r,
/usr/share/glib-2.0/schemas/gschemas.compiled r,
/var/lib/dbus/machine-id r,
/etc/machine-id r,
# The Help menu (and links in it) requires access to a web browser. Since gsmartcontrol is run as
# root (even when used sudo or gsmartcontrol-root), the web browser will also be run as root and
# hence this behavior should be blocked.
deny /{usr/,}lib/@{multiarch}/glib-[0-9]*/gio-launch-desktop rx,
# file_inherit
owner @{HOME}/.xsession-errors w,
profile dbus {
include <abstractions/base>
include <abstractions/nameservice-strict>
/{usr/,}bin/dbus-launch mr,
/{usr/,}bin/dbus-send mr,
/{usr/,}bin/dbus-daemon rPUx,
# for dbus-launch
owner @{HOME}/.dbus/session-bus/[0-9a-f]*-[0-9] w,
@{HOME}/.Xauthority r,
}
profile terminal {
include <abstractions/base>
include <abstractions/consoles>
include <abstractions/nameservice-strict>
include <abstractions/freedesktop.org>
capability setuid,
capability setgid,
capability fsetid,
/{usr/,}bin/xterm mr,
/usr/sbin/update-smart-drivedb rPx,
owner @{HOME}/.Xauthority r,
/etc/shells r,
/etc/X11/app-defaults/XTerm-color r,
/etc/X11/app-defaults/XTerm r,
/etc/X11/cursors/*.theme r,
/usr/include/X11/bitmaps/vlines2 r,
/dev/ptmx rw,
}
include if exists <local/gsmartcontrol>
}