ceph/selinux/ceph.te
Boris Ranto f8a0e201ee selinux: Allow ceph to manage tmp files
Two new denials showed up in testing that relate to ceph trying to
manage (rename and unlink) tmp files. This commit allows ceph to manage
the files.

Fixes: http://tracker.ceph.com/issues/17436

Signed-off-by: Boris Ranto <branto@redhat.com>
2016-09-29 15:02:23 +02:00

116 lines
2.9 KiB
Plaintext

policy_module(ceph, 1.1.1)
require {
type sysfs_t;
type var_run_t;
type random_device_t;
type urandom_device_t;
type setfiles_t;
class sock_file unlink;
class lnk_file read;
class dir read;
class file { getattr read open };
}
########################################
#
# Declarations
#
type ceph_t;
type ceph_exec_t;
init_daemon_domain(ceph_t, ceph_exec_t)
permissive ceph_t;
type ceph_initrc_exec_t;
init_script_file(ceph_initrc_exec_t)
type ceph_log_t;
logging_log_file(ceph_log_t)
type ceph_var_lib_t;
files_type(ceph_var_lib_t)
type ceph_var_run_t;
files_pid_file(ceph_var_run_t)
########################################
#
# ceph local policy
#
allow ceph_t self:process { signal_perms };
allow ceph_t self:fifo_file rw_fifo_file_perms;
allow ceph_t self:unix_stream_socket create_stream_socket_perms;
allow ceph_t self:capability { setuid setgid dac_override };
manage_dirs_pattern(ceph_t, ceph_log_t, ceph_log_t)
manage_files_pattern(ceph_t, ceph_log_t, ceph_log_t)
manage_lnk_files_pattern(ceph_t, ceph_log_t, ceph_log_t)
manage_dirs_pattern(ceph_t, ceph_var_lib_t, ceph_var_lib_t)
manage_files_pattern(ceph_t, ceph_var_lib_t, ceph_var_lib_t)
manage_lnk_files_pattern(ceph_t, ceph_var_lib_t, ceph_var_lib_t)
manage_dirs_pattern(ceph_t, ceph_var_run_t, ceph_var_run_t)
manage_files_pattern(ceph_t, ceph_var_run_t, ceph_var_run_t)
manage_lnk_files_pattern(ceph_t, ceph_var_run_t, ceph_var_run_t)
kernel_read_system_state(ceph_t)
corenet_all_recvfrom_unlabeled(ceph_t)
corenet_all_recvfrom_netlabel(ceph_t)
corenet_udp_sendrecv_generic_if(ceph_t)
corenet_udp_sendrecv_generic_node(ceph_t)
corenet_udp_bind_generic_node(ceph_t)
corenet_tcp_bind_generic_node(ceph_t)
corenet_sendrecv_cyphesis_server_packets(ceph_t)
corenet_tcp_bind_cyphesis_port(ceph_t)
corenet_tcp_sendrecv_cyphesis_port(ceph_t)
corecmd_exec_bin(ceph_t)
corecmd_exec_shell(ceph_t)
dev_read_urand(ceph_t)
domain_read_all_domains_state(ceph_t)
fs_getattr_all_fs(ceph_t)
auth_use_nsswitch(ceph_t)
logging_send_syslog_msg(ceph_t)
sysnet_dns_name_resolve(ceph_t)
# basis for future security review
allow ceph_t ceph_var_run_t:sock_file { create unlink write setattr };
allow ceph_t self:capability { sys_rawio chown };
allow ceph_t self:tcp_socket { accept listen };
corenet_tcp_connect_cyphesis_port(ceph_t)
corenet_tcp_connect_generic_port(ceph_t)
files_list_tmp(ceph_t)
files_manage_generic_tmp_files(ceph_t)
fstools_exec(ceph_t)
nis_use_ypbind_uncond(ceph_t)
storage_raw_rw_fixed_disk(ceph_t)
files_manage_generic_locks(ceph_t)
allow ceph_t sysfs_t:dir read;
allow ceph_t sysfs_t:file { read getattr open };
allow ceph_t sysfs_t:lnk_file read;
allow ceph_t random_device_t:chr_file getattr;
allow ceph_t urandom_device_t:chr_file getattr;
allow ceph_t self:process setpgid;
allow ceph_t var_run_t:dir { write create add_name };
allow ceph_t var_run_t:file { write create open getattr };
fsadm_manage_pid(ceph_t)
#============= setfiles_t ==============
allow setfiles_t ceph_var_lib_t:file write;