selinux-refpolicy/policy/modules/services/zfs.te
Kenton Groombridge fbbed63769 zfs: allow zfs to write to exports
Needed by zfs-mount.service.

type=PROCTITLE msg=audit(1705092131.987:49): proctitle=2F7362696E2F7A6673007368617265002D61
type=SYSCALL msg=audit(1705092131.987:49): arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=665f44189eba a2=80042 a3=180 items=0 ppid=1 pid=3082 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="zfs" exe="/usr/bin/zfs" subj=system_u:system_r:zfs_t:s0 key=(null)
type=AVC msg=audit(1705092131.987:49): avc:  denied  { write } for  pid=3082 comm="zfs" name="zfs.exports.lock" dev="dm-0" ino=1296 scontext=system_u:system_r:zfs_t:s0 tcontext=system_u:object_r:exports_t:s0 tclass=file permissive=0

Signed-off-by: Kenton Groombridge <concord@gentoo.org>
2024-02-21 15:30:53 -05:00

179 lines
4.0 KiB
Plaintext

policy_module(zfs)
########################################
#
# Declarations
#
attribute_role zfs_roles;
type zed_t;
type zed_exec_t;
init_daemon_domain(zed_t, zed_exec_t)
role zfs_roles types zed_t;
type zfs_t;
type zfs_exec_t;
init_system_domain(zfs_t, zfs_exec_t)
role zfs_roles types zfs_t;
type zfs_config_t;
files_config_file(zfs_config_t)
type zfs_zpool_cache_t;
files_config_file(zfs_zpool_cache_t)
type zfs_runtime_t;
files_runtime_file(zfs_runtime_t)
########################################
#
# zed local policy
#
allow zed_t self:process signal;
allow zed_t self:capability sys_admin;
dontaudit zed_t self:capability net_admin;
allow zed_t self:fifo_file rw_fifo_file_perms;
allow zed_t self:unix_dgram_socket create_socket_perms;
allow zed_t self:netlink_kobject_uevent_socket create_socket_perms;
domtrans_pattern(zed_t, zfs_exec_t, zfs_t)
list_dirs_pattern(zed_t, zfs_config_t, zfs_config_t)
read_files_pattern(zed_t, zfs_config_t, zfs_config_t)
read_lnk_files_pattern(zed_t, zfs_config_t, zfs_config_t)
manage_files_pattern(zed_t, zfs_runtime_t, zfs_runtime_t)
files_runtime_filetrans(zed_t, zfs_runtime_t, file)
# to execute scripts in /usr/libexec/zfs
corecmd_exec_bin(zed_t)
corecmd_exec_shell(zed_t)
dev_rw_sysfs(zed_t)
files_search_etc(zed_t)
kernel_read_system_state(zed_t)
kernel_read_vm_overcommit_sysctl(zed_t)
storage_raw_rw_fixed_disk(zed_t)
auth_use_nsswitch(zed_t)
hostname_exec(zed_t)
logging_send_syslog_msg(zed_t)
miscfiles_read_localization(zed_t)
udev_search_runtime(zed_t)
zfs_rw_zpool_cache(zed_t)
optional_policy(`
# for managing /etc/exports.d/zfs.exports
rpc_create_exports(zed_t)
rpc_write_exports(zed_t)
')
########################################
#
# zfs local policy
#
allow zfs_t self:process { getsched signal signull };
allow zfs_t self:capability { sys_admin sys_rawio };
allow zfs_t self:fifo_file rw_fifo_file_perms;
list_dirs_pattern(zfs_t, zfs_config_t, zfs_config_t)
read_files_pattern(zfs_t, zfs_config_t, zfs_config_t)
read_lnk_files_pattern(zfs_t, zfs_config_t, zfs_config_t)
manage_dirs_pattern(zfs_t, zfs_runtime_t, zfs_runtime_t)
manage_files_pattern(zfs_t, zfs_runtime_t, zfs_runtime_t)
files_runtime_filetrans(zfs_t, zfs_runtime_t, { dir file })
# to execute scripts in /usr/libexec/zfs
corecmd_exec_bin(zfs_t)
corecmd_exec_shell(zfs_t)
dev_delete_generic_symlinks(zfs_t)
dev_getattr_sysfs(zfs_t)
dev_read_sysfs(zfs_t)
domain_use_interactive_fds(zfs_t)
files_getattr_all_dirs(zfs_t)
files_mounton_all_mountpoints(zfs_t)
files_search_etc(zfs_t)
fs_getattr_xattr_fs(zfs_t)
fs_mount_xattr_fs(zfs_t)
fs_unmount_xattr_fs(zfs_t)
fs_remount_xattr_fs(zfs_t)
fs_relabelfrom_xattr_fs(zfs_t)
fs_ioctl_cgroup_dirs(zfs_t)
fs_rw_nfsd_fs(zfs_t)
kernel_read_fs_sysctls(zfs_t)
kernel_read_kernel_sysctls(zfs_t)
kernel_read_system_state(zfs_t)
storage_raw_rw_fixed_disk(zfs_t)
udev_read_runtime_files(zfs_t)
miscfiles_read_localization(zfs_t)
auth_use_nsswitch(zfs_t)
mount_exec(zfs_t)
userdom_use_user_terminals(zfs_t)
zfs_rw_zpool_cache(zfs_t)
optional_policy(`
fstools_manage_runtime_files(zfs_t)
fstools_runtime_filetrans(zfs_t, dir, "blkid")
')
optional_policy(`
kernel_rw_rpc_sysctls(zfs_t)
rpc_manage_nfs_state_data(zfs_t)
rpc_list_exports(zfs_t)
rpc_create_exports(zfs_t)
rpc_read_exports(zfs_t)
rpc_write_exports(zfs_t)
')
#######################################
#
# Mail local policy
#
optional_policy(`
mta_base_mail_template(zed)
role system_r types zed_mail_t;
allow zed_mail_t zed_t:fd use;
allow zed_mail_t zed_t:fifo_file rw_fifo_file_perms;
allow zed_mail_t zed_t:process sigchld;
manage_dirs_pattern(zed_t, zed_mail_tmp_t, zed_mail_tmp_t)
manage_files_pattern(zed_t, zed_mail_tmp_t, zed_mail_tmp_t)
files_tmp_filetrans(zed_t, zed_mail_tmp_t, { dir file })
allow zfs_t zed_mail_tmp_t:file write_file_perms;
mta_sendmail_domtrans(zed_t, zed_mail_t)
allow zed_mail_t self:capability { dac_override dac_read_search };
storage_dontaudit_read_fixed_disk(zed_mail_t)
storage_dontaudit_write_fixed_disk(zed_mail_t)
')