# 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 , include @{exec_path} = /{usr/,}sbin/gsmartcontrol profile gsmartcontrol @{exec_path} { include include include include include include include 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 include /{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 include include include 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 }