## ## Policy for kernel module utilities ######################################## ## ## ## Read the dependencies of kernel modules. ## ## ## The type of the process performing this action. ## ## # define(`modutils_read_kernel_module_dependencies',` requires_block_template(`$0'_depend) bootloader_list_kernel_modules($1) allow $1 modules_dep_t:file r_file_perms; ') define(`modutils_read_kernel_module_dependencies_depend',` type modules_dep_t; class file { getattr create read write setattr unlink }; class dir { search read write add_name remove_name }; ') ######################################## ## ## ## Read the configuration options used when ## loading modules. ## ## ## The type of the process performing this action. ## ## # define(`modutils_read_kernel_module_loading_config',` requires_block_template(`$0'_depend) allow $1 modules_conf_t:file r_file_perms; ') define(`modutils_read_kernel_module_loading_config_depend',` type modules_conf_t; class file r_file_perms; ') ######################################## ## ## ## Execute insmod in the insmod domain. Has a ## sigchld backchannel. ## ## ## The type of the process performing this action. ## ## # define(`modutils_insmod_transition',` requires_block_template(`$0'_depend) domain_auto_trans($1, insmod_exec_t, insmod_t) allow $1 insmod_t:fd use; allow insmod_t $1:fd use; allow insmod_t $1:fifo_file rw_file_perms; allow insmod_t $1:process sigchld; ') define(`modutils_insmod_transition_depend',` type insmod_t; class file { getattr read execute }; class process { transition noatsecure siginh rlimitinh sigchld }; class fd use; class fifo_file rw_file_perms; ') ######################################## ## ## ## Execute insmod in the insmod domain, and ## allow the specified role the insmod domain, ## and use the caller's terminal. Has a sigchld ## backchannel. ## ## ## The type of the process performing this action. ## ## ## The role to be allowed the insmod domain. ## ## ## The type of the terminal allow the insmod domain to use. ## ## # define(`modutils_insmod_transition_add_role_use_terminal',` requires_block_template(`$0'_depend) modutils_insmod_transition($1) role $2 types insmod_t; allow insmod_t $3:chr_file { getattr read write ioctl }; ') define(`modutils_insmod_transition_add_role_use_terminal_depend',` type insmod_t; class chr_file { getattr read write ioctl }; ') ######################################## # # modutils_insmod_execute(domain) # define(`modutils_insmod_execute',` requires_block_template(`$0'_depend) can_exec($1, insmod_exec_t) ') define(`modutils_insmod_execute_depend',` type insmod_t; class file { getattr read execute execute_no_trans }; ') ######################################## ## ## ## Execute depmod in the depmod domain. ## ## ## The type of the process performing this action. ## ## # define(`modutils_depmod_transition',` requires_block_template(`$0'_depend) domain_auto_trans($1, depmod_exec_t, depmod_t) allow $1 depmod_t:fd use; allow depmod_t $1:fd use; allow depmod_t $1:fifo_file rw_file_perms; allow depmod_t $1:process sigchld; ') define(`modutils_depmod_transition_depend',` type depmod_t; class file { getattr read execute }; class process { transition noatsecure siginh rlimitinh sigchld }; class fd use; class fifo_file rw_file_perms; ') ######################################## ## ## ## Execute depmod in the depmod domain. ## ## ## The type of the process performing this action. ## ## ## The role to be allowed the depmod domain. ## ## ## The type of the terminal allow the depmod domain to use. ## ## # define(`modutils_depmod_transition_add_role_use_terminal',` requires_block_template(`$0'_depend) modutils_depmod_transition($1) role $2 types insmod_t; allow insmod_t $3:chr_file { getattr read write ioctl }; ') define(`modutils_depmod_transition_add_role_use_terminal_depend',` type depmod_t; class chr_file { getattr read write ioctl }; ') ######################################## # # modutils_depmod_execute(domain) # define(`modutils_depmod_execute',` requires_block_template(`$0'_depend) can_exec($1, depmod_exec_t) ') define(`modutils_depmod_execute_depend',` type depmod_t; class file { getattr read execute execute_no_trans }; ') ######################################## ## ## ## Execute depmod in the depmod domain. ## ## ## The type of the process performing this action. ## ## # define(`modutils_update_modules_transition',` requires_block_template(`$0'_depend) domain_auto_trans($1, update_modules_exec_t, update_modules_t) allow $1 update_modules_t:fd use; allow update_modules_t $1:fd use; allow update_modules_t $1:fifo_file rw_file_perms; allow update_modules_t $1:process sigchld; ') define(`modutils_update_modules_transition_depend',` type update_modules_t; class file { getattr read execute }; class process { transition noatsecure siginh rlimitinh signal }; class fd use; class fifo_file rw_file_perms; ') ######################################## ## ## ## Execute update_modules in the update_modules domain. ## ## ## The type of the process performing this action. ## ## ## The role to be allowed the update_modules domain. ## ## ## The type of the terminal allow the update_modules domain to use. ## ## # define(`modutils_update_modules_transition_add_role_use_terminal',` requires_block_template(`$0'_depend) modutils_update_modules_transition($1) role $2 types update_modules_t; allow update_modules_t $3:chr_file rw_file_perms; ') define(`modutils_update_modules_transition_add_role_use_terminal_depend',` type update_modules_t; class chr_file rw_file_perms; ') ######################################## # # modutils_update_modules_execute(domain) # define(`modutils_update_modules_execute',` requires_block_template(`$0'_depend) can_exec($1, update_modules_exec_t) ') define(`modutils_update_modules_execute_depend',` type update_modules_t; class file { getattr read execute execute_no_trans }; ') ##