You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
265 lines
5.4 KiB
265 lines
5.4 KiB
|
|
## <summary>policy for radicale</summary> |
|
|
|
######################################## |
|
## <summary> |
|
## Execute TEMPLATE in the radicale domin. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed to transition. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_domtrans',` |
|
gen_require(` |
|
type radicale_t, radicale_exec_t; |
|
') |
|
|
|
corecmd_search_bin($1) |
|
domtrans_pattern($1, radicale_exec_t, radicale_t) |
|
') |
|
######################################## |
|
## <summary> |
|
## Read radicale's log files. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
## <rolecap/> |
|
# |
|
interface(`radicale_read_log',` |
|
gen_require(` |
|
type radicale_log_t; |
|
') |
|
|
|
logging_search_logs($1) |
|
read_files_pattern($1, radicale_log_t, radicale_log_t) |
|
') |
|
|
|
######################################## |
|
## <summary> |
|
## Append to radicale log files. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_append_log',` |
|
gen_require(` |
|
type radicale_log_t; |
|
') |
|
|
|
logging_search_logs($1) |
|
append_files_pattern($1, radicale_log_t, radicale_log_t) |
|
') |
|
|
|
######################################## |
|
## <summary> |
|
## Manage radicale log files |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_manage_log',` |
|
gen_require(` |
|
type radicale_log_t; |
|
') |
|
|
|
logging_search_logs($1) |
|
manage_dirs_pattern($1, radicale_log_t, radicale_log_t) |
|
manage_files_pattern($1, radicale_log_t, radicale_log_t) |
|
manage_lnk_files_pattern($1, radicale_log_t, radicale_log_t) |
|
') |
|
|
|
######################################## |
|
## <summary> |
|
## Search radicale lib directories. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_search_lib',` |
|
gen_require(` |
|
type radicale_var_lib_t; |
|
') |
|
|
|
allow $1 radicale_var_lib_t:dir search_dir_perms; |
|
files_search_var_lib($1) |
|
') |
|
|
|
######################################## |
|
## <summary> |
|
## Read radicale lib files. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_read_lib_files',` |
|
gen_require(` |
|
type radicale_var_lib_t; |
|
') |
|
|
|
files_search_var_lib($1) |
|
read_files_pattern($1, radicale_var_lib_t, radicale_var_lib_t) |
|
') |
|
|
|
######################################## |
|
## <summary> |
|
## Manage radicale lib files. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_manage_lib_files',` |
|
gen_require(` |
|
type radicale_var_lib_t; |
|
') |
|
|
|
files_search_var_lib($1) |
|
manage_files_pattern($1, radicale_var_lib_t, radicale_var_lib_t) |
|
') |
|
|
|
######################################## |
|
## <summary> |
|
## Manage radicale lib directories. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_manage_lib_dirs',` |
|
gen_require(` |
|
type radicale_var_lib_t; |
|
') |
|
|
|
files_search_var_lib($1) |
|
manage_dirs_pattern($1, radicale_var_lib_t, radicale_var_lib_t) |
|
') |
|
|
|
##################################### |
|
## <summary> |
|
## Read radicale pid files. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_read_pid_files',` |
|
gen_require(` |
|
type radicale_var_run_t; |
|
') |
|
files_search_pids($1) |
|
read_files_pattern($1, radicale_var_run_t, radicale_var_run_t) |
|
') |
|
|
|
##################################### |
|
## <summary> |
|
## Search radicale pid files. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
## |
|
# |
|
interface(`radicale_search_pid_files',` |
|
gen_require(` |
|
type radicale_var_run_t; |
|
') |
|
files_search_pids($1) |
|
search_dirs_pattern($1, radicale_var_run_t, radicale_var_run_t) |
|
') |
|
|
|
######################################## |
|
## <summary> |
|
## Execute radicale server in the radicale domain. |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed to transition. |
|
## </summary> |
|
## </param> |
|
# |
|
interface(`radicale_systemctl',` |
|
gen_require(` |
|
type radicale_t; |
|
type radicale_unit_file_t; |
|
') |
|
|
|
systemd_exec_systemctl($1) |
|
systemd_read_fifo_file_password_run($1) |
|
allow $1 radicale_unit_file_t:file read_file_perms; |
|
allow $1 radicale_unit_file_t:service manage_service_perms; |
|
|
|
ps_process_pattern($1, radicale_t) |
|
') |
|
|
|
|
|
######################################## |
|
## <summary> |
|
## All of the rules required to administrate |
|
## an radicale environment |
|
## </summary> |
|
## <param name="domain"> |
|
## <summary> |
|
## Domain allowed access. |
|
## </summary> |
|
## </param> |
|
## <param name="role"> |
|
## <summary> |
|
## Role allowed access. |
|
## </summary> |
|
## </param> |
|
## <rolecap/> |
|
# |
|
interface(`radicale_admin',` |
|
gen_require(` |
|
type radicale_t; |
|
type radicale_log_t; |
|
type radicale_var_lib_t; |
|
type radicale_var_run_t; |
|
type radicale_unit_file_t; |
|
') |
|
|
|
allow $1 radicale_t:process { ptrace signal_perms }; |
|
ps_process_pattern($1, radicale_t) |
|
|
|
logging_search_logs($1) |
|
admin_pattern($1, radicale_log_t) |
|
|
|
files_search_var_lib($1) |
|
admin_pattern($1, radicale_var_lib_t) |
|
|
|
radicale_search_pid_files($1) |
|
radicale_read_pid_files($1) |
|
|
|
radicale_systemctl($1) |
|
admin_pattern($1, radicale_unit_file_t) |
|
allow $1 radicale_unit_file_t:service all_service_perms; |
|
optional_policy(` |
|
systemd_passwd_agent_exec($1) |
|
systemd_read_fifo_file_passwd_run($1) |
|
') |
|
')
|
|
|