155 lines
4.9 KiB
Text
155 lines
4.9 KiB
Text
# apparmor.d - Full set of apparmor profiles
|
|
# Copyright (C) 2018-2021 Mikhail Morfikov
|
|
# Copyright (C) 2021 Alexandre Pujol <alexandre@pujol.io>
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
abi <abi/3.0>,
|
|
|
|
include <tunables/global>
|
|
|
|
@{exec_path} = /{usr/,}lib/udisks2/udisksd
|
|
@{exec_path} += @{libexec}/udisks2/udisksd
|
|
profile udisksd @{exec_path} flags=(attach_disconnected) {
|
|
include <abstractions/base>
|
|
include <abstractions/dbus-strict>
|
|
include <abstractions/disks-write>
|
|
include <abstractions/nameservice-strict>
|
|
|
|
capability chown,
|
|
capability dac_override,
|
|
capability dac_read_search,
|
|
capability setgid,
|
|
capability setuid,
|
|
capability sys_admin,
|
|
capability sys_nice,
|
|
capability sys_rawio,
|
|
|
|
network netlink raw,
|
|
|
|
dbus (send,receive) bus=system path=/org/freedesktop/UDisks2{,/**}
|
|
interface=org.freedesktop.{DBus*,UDisks2*},
|
|
|
|
dbus receive bus=system path=/org/freedesktop/PolicyKit[0-9]/Authority
|
|
interface=org.freedesktop.PolicyKit[0-9].Authority
|
|
member=Changed,
|
|
|
|
dbus send bus=system path=/org/freedesktop/DBus
|
|
interface=org.freedesktop.DBus
|
|
member={ReleaseName,GetConnectionUnixUser},
|
|
|
|
dbus send bus=system path=/org/freedesktop/login[0-9]
|
|
interface=org.freedesktop.login[0-9].Manager
|
|
member=Inhibit,
|
|
|
|
dbus send bus=system path=/org/freedesktop/PolicyKit[0-9]/Authority
|
|
interface=org.freedesktop.DBus.Properties
|
|
member=GetAll,
|
|
|
|
dbus send bus=system path=/org/freedesktop/PolicyKit[0-9]/Authority
|
|
interface=org.freedesktop.PolicyKit[0-9].Authority
|
|
member=CheckAuthorization,
|
|
|
|
dbus bind bus=system
|
|
name=org.freedesktop.UDisks2,
|
|
|
|
@{exec_path} mr,
|
|
|
|
/{usr/,}bin/{,ba,da}sh rix,
|
|
/{usr/,}bin/umount rix,
|
|
|
|
/{usr/,}{s,}bin/dmidecode rPx,
|
|
/{usr/,}{s,}bin/dumpe2fs rPx,
|
|
/{usr/,}{s,}bin/fsck.fat rPx,
|
|
/{usr/,}{s,}bin/lvm rPUx,
|
|
/{usr/,}{s,}bin/mke2fs rPx,
|
|
/{usr/,}{s,}bin/mkfs.btrfs rPx,
|
|
/{usr/,}{s,}bin/mkfs.fat rPx,
|
|
/{usr/,}bin/eject rPx,
|
|
/{usr/,}bin/ntfs-3g rPx,
|
|
/{usr/,}bin/ntfsfix rPx,
|
|
/{usr/,}bin/systemctl rPx -> child-systemctl,
|
|
/{usr/,}bin/systemd-escape rPx,
|
|
|
|
# Allow mounting of removable devices
|
|
mount fstype={btrfs,ext*,vfat,iso9660,udf,ntfs3} /dev/{s,v}d[a-z]* -> @{MOUNTS}/*/*/,
|
|
mount fstype={btrfs,ext*,vfat,iso9660,udf,ntfs3} /dev/{s,v}d[a-z]*[0-9]* -> @{MOUNTS}/*/*/,
|
|
mount fstype={btrfs,ext*,vfat,iso9660,udf,ntfs3} /dev/dm-[0-9]* -> @{MOUNTS}/*/*/,
|
|
# Allow mounting of loop devices (ISO files)
|
|
mount fstype={btrfs,ext*,vfat,iso9660,udf,ntfs3} /dev/loop[0-9]* -> @{MOUNTS}/*/*/,
|
|
mount fstype={btrfs,ext*,vfat,iso9660,udf,ntfs3} /dev/loop[0-9]*p[0-9]* -> @{MOUNTS}/*/*/,
|
|
# Allow mounting of cdrom
|
|
mount fstype={btrfs,ext*,vfat,iso9660,udf,ntfs3} /dev/loop[0-9]* -> /media/cdrom[0-9]/,
|
|
mount fstype={iso9660,udf,ntfs3} /dev/sr[0-9]* -> /media/cdrom[0-9]/,
|
|
# Allow mounting od sd cards
|
|
mount fstype={btrfs,ext*,vfat,iso9660,udf,ntfs3} /dev/mmcblk[0-9] -> @{MOUNTS}/*/*/,
|
|
mount fstype={btrfs,ext*,vfat,iso9660,udf,ntfs3} /dev/mmcblk[0-9]*p[0-9]* -> @{MOUNTS}/*/*/,
|
|
# Allow unmounting
|
|
umount @{MOUNTS}/*/,
|
|
umount @{MOUNTS}/*/*/,
|
|
umount /media/cdrom[0-9]/,
|
|
|
|
# Be able to create/delete dirs for removable media
|
|
@{MOUNTS}/*/ rw,
|
|
@{MOUNTS}/*/*/ rw,
|
|
/media/cdrom[0-9]/ rw,
|
|
|
|
# Udisks2 config files
|
|
/etc/udisks2/ r,
|
|
/etc/udisks2/udisks2.conf r,
|
|
|
|
/etc/libblockdev/conf.d/ r,
|
|
/etc/libblockdev/conf.d/[0-9][0-9]-default.cfg r,
|
|
|
|
owner @{PROC}/@{pid}/mountinfo r,
|
|
owner @{PROC}/@{pid}/mounts r,
|
|
owner @{PROC}/@{pid}/fd/ r,
|
|
@{PROC}/cmdline r,
|
|
@{PROC}/devices r,
|
|
@{PROC}/swaps r,
|
|
|
|
# To be able to initialize device-mapper disk devices
|
|
/dev/mapper/ r,
|
|
/dev/mapper/control rw,
|
|
|
|
# The special /dev/loop-control file can be used to create and destroy loop devices or to find
|
|
# the first available loop device.
|
|
/dev/loop-control rw,
|
|
|
|
# To check whether the x-udisks-auth option was used to specify that additional authorization is
|
|
# required to mount/unlock a device
|
|
/etc/fstab r,
|
|
/etc/crypttab r,
|
|
|
|
# To be able to operate on encryted devices
|
|
@{run}/cryptsetup/ r,
|
|
@{run}/cryptsetup/L* rwk,
|
|
|
|
@{sys}/fs/ r,
|
|
@{sys}/bus/ r,
|
|
@{sys}/class/ r,
|
|
|
|
@{sys}/devices/pci[0-9]*/**/{ata,usb,mmc}[0-9]/{,**/}uevent w,
|
|
@{sys}/devices/virtual/block/dm-[0-9]*/ w,
|
|
@{sys}/devices/virtual/block/dm-[0-9]*/** w,
|
|
@{sys}/devices/virtual/block/loop[0-9]*/uevent rw,
|
|
|
|
# For powering off USB devices
|
|
@{sys}/devices/pci[0-9]*/**/{ata,usb,mmc}[0-9]/{,**/}remove rw,
|
|
|
|
@{sys}/devices/virtual/bdi/**/read_ahead_kb r,
|
|
|
|
@{run}/ r,
|
|
|
|
# Info on mounted devices
|
|
@{run}/mount/utab{,.*} rw,
|
|
@{run}/mount/utab.lock rwk,
|
|
/var/lib/udisks2/ r,
|
|
/var/lib/udisks2/mounted-fs{,*} rw,
|
|
|
|
@{run}/udisks2/{,**} rw,
|
|
|
|
@{run}/systemd/seats/seat[0-9]* r,
|
|
@{run}/systemd/inhibit/[0-9]*.ref rw,
|
|
|
|
include if exists <local/udisksd>
|
|
}
|