apparmor.d/apparmor.d/groups/ssh/sshfs
2025-04-06 15:30:10 +02:00

58 lines
1.6 KiB
Text

# apparmor.d - Full set of apparmor profiles
# Copyright (C) 2021 Mikhail Morfikov
# Copyright (C) 2023-2024 Alexandre Pujol <alexandre@pujol.io>
# SPDX-License-Identifier: GPL-2.0-only
abi <abi/4.0>,
include <tunables/global>
@{exec_path} = @{bin}/sshfs
profile sshfs @{exec_path} flags=(complain) {
include <abstractions/base>
mount fstype=fuse.sshfs -> @{HOME}/*/,
mount fstype=fuse.sshfs -> @{HOME}/*/*/,
mount fstype=fuse.sshfs -> @{MOUNTDIRS}/,
mount fstype=fuse.sshfs -> @{MOUNTS}/,
mount fstype=fuse.sshfs -> @{MOUNTS}/*/,
mount fstype=fuse.sshfs -> @{MOUNTS}/*/*/,
unix (connect, send, receive) type=stream peer=(label="sshfs//fusermount",addr=none),
@{exec_path} mr,
@{bin}/ssh rPx,
@{bin}/fusermount{,3} rCx -> fusermount,
@{PROC}/sys/fs/pipe-max-size r,
/dev/fuse rw,
profile fusermount flags=(complain) {
include <abstractions/base>
include <abstractions/app/fusermount>
mount fstype={fuse,fuse.sshfs} -> @{HOME}/*/,
mount fstype={fuse,fuse.sshfs} -> @{HOME}/*/*/,
mount fstype={fuse,fuse.sshfs} -> @{MOUNTDIRS}/,
mount fstype={fuse,fuse.sshfs} -> @{MOUNTS}/,
mount fstype={fuse,fuse.sshfs} -> @{MOUNTS}/*/,
mount fstype={fuse,fuse.sshfs} -> @{MOUNTS}/*/*/,
umount @{HOME}/*/,
umount @{HOME}/*/*/,
umount @{MOUNTDIRS}/,
umount @{MOUNTS}/,
umount @{MOUNTS}/*/,
umount @{MOUNTS}/*/*/,
unix (connect, send, receive) type=stream peer=(label="sshfs",addr=none),
include if exists <local/sshfs_fusermount>
}
include if exists <local/sshfs>
}
# vim:syntax=apparmor