## ## ## Core policy for shells, and generic programs ## in /bin, /sbin, /usr/bin, and /usr/sbin. ## ####################################### # # corecmd_shell_entry_type(domain) # define(`corecmd_shell_entry_type',` requires_block_template(`$0'_depend) domain_entry_file($1,shell_exec_t) ') define(`corecmd_shell_entry_type_depend',` type shell_exec_t; ') ######################################## # # corecmd_search_bin(domain) # define(`corecmd_search_bin',` requires_block_template(`$0'_depend) allow $1 bin_t:dir search; ') define(`corecmd_search_bin_depend',` type bin_t; class dir search; ') ######################################## # # corecmd_list_bin(domain) # define(`corecmd_list_bin',` requires_block_template(`$0'_depend) allow $1 bin_t:dir r_dir_perms; ') define(`corecmd_list_bin_depend',` type bin_t; class dir r_dir_perms; ') ######################################## # # corecmd_exec_bin(domain) # define(`corecmd_exec_bin',` requires_block_template(`$0'_depend) allow $1 bin_t:dir r_dir_perms; allow $1 bin_t:lnk_file r_file_perms; can_exec($1,bin_t) ') define(`corecmd_exec_bin_depend',` type bin_t; class dir r_dir_perms; class lnk_file r_file_perms; class file { getattr read ioctl lock execute execute_no_trans }; ') ######################################## # # corecmd_search_sbin(domain) # define(`corecmd_search_sbin',` requires_block_template(`$0'_depend) allow $1 sbin_t:dir search; ') define(`corecmd_search_sbin_depend',` type sbin_t; class dir search; ') ######################################## # # corecmd_list_sbin(domain) # define(`corecmd_list_sbin',` requires_block_template(`$0'_depend) allow $1 sbin_t:dir r_dir_perms; ') define(`corecmd_list_sbin_depend',` type sbin_t; class dir r_dir_perms; ') ######################################## # # corecmd_dontaudit_getattr_sbin_file(domain) # define(`corecmd_dontaudit_getattr_sbin_file',` requires_block_template(`$0'_depend) allow $1 sbin_t:file getattr; ') define(`corecmd_dontaudit_getattr_sbin_file_depend',` type sbin_t; class file getattr; ') ######################################## # # corecmd_exec_sbin(domain) # define(`corecmd_exec_sbin',` requires_block_template(`$0'_depend) allow $1 sbin_t:dir r_dir_perms; allow $1 sbin_t:lnk_file r_file_perms; can_exec($1,sbin_t) ') define(`corecmd_exec_sbin_depend',` type sbin_t; class dir r_dir_perms; class lnk_file r_file_perms; class file { getattr read ioctl lock execute execute_no_trans }; ') ######################################## # # corecmd_exec_shell(domain) # define(`corecmd_exec_shell',` requires_block_template(`$0'_depend) allow $1 bin_t:dir r_dir_perms; allow $1 bin_t:lnk_file r_file_perms; can_exec($1,shell_exec_t) ') define(`corecmd_exec_shell_depend',` type bin_t, shell_exec_t; class dir r_dir_perms; class lnk_file r_file_perms; class file { getattr read lock ioctl execute execute_no_trans }; ') ######################################## # # corecmd_exec_ls(domain) # define(`corecmd_exec_ls',` requires_block_template(`$0'_depend) allow $1 bin_t:dir r_dir_perms; allow $1 bin_t:lnk_file r_file_perms; can_exec($1,ls_exec_t) ') define(`corecmd_exec_shell_depend',` type bin_t, ls_exec_t; class dir r_dir_perms; class lnk_file r_file_perms; class file { getattr read lock ioctl execute execute_no_trans }; ') ######################################## ## ## ## Execute a shell in the target domain. This ## is an explicit transition, requiring the ## caller to use setexeccon(). ## ## ## The type of the process performing this action. ## ## ## The type of the shell process. ## ## # define(`corecmd_shell_spec_domtrans',` requires_block_template(`$0'_depend) allow $1 bin_t:dir r_dir_perms; allow $1 bin_t:lnk_file r_file_perms; domain_trans($1,shell_exec_t,$2) allow $1 $2:fd use; allow $2 $1:fd use; allow $2 $1:fifo_file rw_file_perms; allow $2 $1:process sigchld; ') define(`corecmd_shell_spec_domtrans_depend',` type bin_t, shell_exec_t; class dir r_dir_perms; class lnk_file r_file_perms; class file rx_file_perms class process { transition noatsecure siginh rlimitinh sigchld }; class fd use; class fifo_file rw_file_perms; ') ######################################## ## ## ## Execute a shell in the target domain. ## ## ## The type of the process performing this action. ## ## ## The type of the shell process. ## ## # define(`corecmd_domtrans_shell',` requires_block_template(`$0'_depend) corecmd_shell_spec_domtrans($1,$2) type_transition $1 shell_exec_t:process $2; ') define(`corecmd_domtrans_shell_depend',` type shell_exec_t; ') ######################################## # # corecmd_chroot_exec_chroot(domain) # define(`corecmd_chroot_exec_chroot',` requires_block_template(`$0'_depend) allow $1 chroot_exec_t:file { getattr read execute execute_no_trans }; allow $1 self:capability sys_chroot; ') define(`corecmd_chroot_exec_chroot_depend',` type chroot_exec_t; class file { getattr read execute execute_no_trans }; class capability sys_chroot; ') ##