# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2020-2022 Mikhail Morfikov
# Copyright (C) 2022-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only

abi <abi/4.0>,

include <tunables/global>

@{exec_path} = @{bin}/mount.cifs
profile mount-cifs @{exec_path} flags=(complain) {
  include <abstractions/base>
  include <abstractions/nameservice-strict>

  # To mount anything.
  capability sys_admin,

  # (#FIXME#)
  capability setpcap,

  network inet stream,
  network inet6 stream,
  network netlink raw,

  @{exec_path} mr,

  @{bin}/systemd-ask-password rPUx,

  /etc/fstab r,

  owner @{HOME}/.smbcredentials r,

  # Mount points
  @{MOUNTDIRS}/ r,
  @{MOUNTS}/ r,
  @{MOUNTS}/*/ r,

  # Allow to mount smb/cifs disks only under the /media/ dirs
  mount fstype=cifs -> @{MOUNTDIRS}/,
  mount fstype=cifs -> @{MOUNTS}/,
  mount fstype=cifs -> @{MOUNTS}/*/,

  umount @{MOUNTDIRS}/,
  umount @{MOUNTS}/,
  umount @{MOUNTS}/*/,

  include if exists <local/mount-cifs>
}

# vim:syntax=apparmor
