mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-03-18 10:42:11 +01:00
Remove overly permissive blanket `capability,` rule (grants ALL Linux capabilities) from 107 addon AppArmor profiles. Replace with only the specific capabilities each addon needs based on its config.yaml `privileged` field. Base capabilities for all addons: setuid, setgid, chown, fowner, dac_override Additional capabilities mapped from config.yaml privileged list: - SYS_ADMIN -> sys_admin - DAC_READ_SEARCH -> dac_read_search - NET_ADMIN -> net_admin - NET_RAW -> net_raw - SYS_RAWIO -> sys_rawio - SYS_TIME -> sys_time - SYS_RESOURCE -> sys_resource Addons with full_access: true (portainer_agent) retain blanket capability. Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
65 lines
1.2 KiB
Plaintext
65 lines
1.2 KiB
Plaintext
#include <tunables/global>
|
|
|
|
profile cleanuparr_addon flags=(attach_disconnected,mediate_deleted) {
|
|
#include <abstractions/base>
|
|
|
|
capability chown,
|
|
capability dac_override,
|
|
capability fowner,
|
|
capability setgid,
|
|
capability setuid,
|
|
file,
|
|
signal,
|
|
mount,
|
|
umount,
|
|
remount,
|
|
network udp,
|
|
network tcp,
|
|
network dgram,
|
|
network stream,
|
|
network inet,
|
|
network inet6,
|
|
network netlink raw,
|
|
network unix dgram,
|
|
|
|
|
|
# S6-Overlay
|
|
/init ix,
|
|
/run/{s6,s6-rc*,service}/** ix,
|
|
/package/** ix,
|
|
/command/** ix,
|
|
/run/{,**} rwk,
|
|
/dev/tty rw,
|
|
/bin/** ix,
|
|
/usr/bin/** ix,
|
|
/usr/lib/bashio/** ix,
|
|
/etc/s6/** rix,
|
|
/run/s6/** rix,
|
|
/etc/services.d/** rwix,
|
|
/etc/cont-init.d/** rwix,
|
|
/etc/cont-finish.d/** rwix,
|
|
/init rix,
|
|
/var/run/** mrwkl,
|
|
/var/run/ mrwkl,
|
|
/dev/i2c-1 mrwkl,
|
|
# Files required
|
|
/dev/fuse mrwkl,
|
|
/dev/sda1 mrwkl,
|
|
/dev/sdb1 mrwkl,
|
|
/dev/nvme0 mrwkl,
|
|
/dev/nvme1 mrwkl,
|
|
/dev/mmcblk0p1 mrwkl,
|
|
/dev/* mrwkl,
|
|
/tmp/** mrkwl,
|
|
|
|
# Data access
|
|
/data/** rw,
|
|
|
|
# suppress ptrace denials when using 'docker ps' or using 'ps' inside a container
|
|
ptrace (trace,read) peer=docker-default,
|
|
|
|
# docker daemon confinement requires explict allow rule for signal
|
|
signal (receive) set=(kill,term) peer=/usr/bin/docker,
|
|
|
|
}
|