## System shutdown command. ######################################## ## ## Role access for shutdown. ## ## ## ## Role allowed access. ## ## ## ## ## User domain for the role. ## ## # interface(`shutdown_role',` gen_require(` type shutdown_t; ') shutdown_run($2, $1) allow $2 shutdown_t:process { ptrace signal_perms }; ps_process_pattern($2, shutdown_t) ') ######################################## ## ## Execute a domain transition to run shutdown. ## ## ## ## Domain allowed to transition. ## ## # interface(`shutdown_domtrans',` gen_require(` type shutdown_t, shutdown_exec_t; ') corecmd_search_bin($1) domtrans_pattern($1, shutdown_exec_t, shutdown_t) ') ######################################## ## ## Execute shutdown in the shutdown ## domain, and allow the specified role ## the shutdown domain. ## ## ## ## Domain allowed to transition. ## ## ## ## ## Role allowed access. ## ## # interface(`shutdown_run',` gen_require(` attribute_role shutdown_roles; ') shutdown_domtrans($1) roleattribute $2 shutdown_roles; ') ######################################## ## ## Send generic signals to shutdown. ## ## ## ## Domain allowed access. ## ## # interface(`shutdown_signal',` gen_require(` type shutdown_t; ') allow shutdown_t $1:process signal; ') ######################################## ## ## Send SIGCHLD signals to shutdown. ## ## ## ## Domain allowed access. ## ## # interface(`shutdown_sigchld',` gen_require(` type shutdown_t; ') allow $1 shutdown_t:process sigchld; ') ######################################## ## ## Get attributes of shutdown executable files. ## ## ## ## Domain allowed access. ## ## # interface(`shutdown_getattr_exec_files',` gen_require(` type shutdown_exec_t; ') corecmd_search_bin($1) allow $1 shutdown_exec_t:file getattr_file_perms; ')