## File transfer protocol service. ###################################### ## ## Execute a domain transition to run ftpd. ## ## ## ## Domain allowed to transition. ## ## # interface(`ftp_domtrans',` gen_require(` type ftpd_t, ftpd_exec_t; ') corecmd_search_bin($1) domtrans_pattern($1,ftpd_exec_t, ftpd_t) ') ####################################### ## ## Execute ftpd server in the ftpd domain. ## ## ## ## The type of the process performing this action. ## ## # interface(`ftp_initrc_domtrans',` gen_require(` type ftpd_initrc_exec_t; ') init_labeled_script_domtrans($1, ftpd_initrc_exec_t) ') ######################################## ## ## Execute ftpd server in the ftpd domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`ftp_systemctl',` gen_require(` type ftpd_unit_file_t; type ftpd_t; ') systemd_exec_systemctl($1) init_reload_services($1) allow $1 ftpd_unit_file_t:file read_file_perms; allow $1 ftpd_unit_file_t:service manage_service_perms; ps_process_pattern($1, ftpd_t) ') ####################################### ## ## Execute a dyntransition to run anon sftpd. ## ## ## ## Domain allowed to transition. ## ## # interface(`ftp_dyntrans_anon_sftpd',` gen_require(` type anon_sftpd_t; ') dyntrans_pattern($1, anon_sftpd_t) ') ######################################## ## ## Connect to over ftpd over TCP. (Deprecated) ## ## ## ## Domain allowed access. ## ## # interface(`ftp_tcp_connect',` refpolicywarn(`$0($*) has been deprecated.') ') ######################################## ## ## Read ftpd configuration files. ## ## ## ## Domain allowed access. ## ## # interface(`ftp_read_config',` gen_require(` type ftpd_etc_t; ') files_search_etc($1) allow $1 ftpd_etc_t:file read_file_perms; ') ######################################## ## ## Execute FTP daemon entry point programs. ## ## ## ## Domain allowed access. ## ## # interface(`ftp_check_exec',` gen_require(` type ftpd_exec_t; ') corecmd_search_bin($1) allow $1 ftpd_exec_t:file mmap_file_perms; ') ######################################## ## ## Read ftpd log files. ## ## ## ## Domain allowed access. ## ## # interface(`ftp_read_log',` gen_require(` type xferlog_t; ') logging_search_logs($1) allow $1 xferlog_t:file read_file_perms; ') ######################################## ## ## Execute the ftpdctl in the ftpdctl domain. ## ## ## ## Domain allowed to transition. ## ## # interface(`ftp_domtrans_ftpdctl',` gen_require(` type ftpdctl_t, ftpdctl_exec_t; ') corecmd_search_bin($1) domtrans_pattern($1, ftpdctl_exec_t, ftpdctl_t) ') ######################################## ## ## Execute the ftpdctl in the ftpdctl ## domain, and allow the specified ## role the ftpctl domain. ## ## ## ## Domain allowed to transition. ## ## ## ## ## Role allowed access. ## ## ## # interface(`ftp_run_ftpdctl',` gen_require(` attribute_role ftpdctl_roles; ') ftp_domtrans_ftpdctl($1) roleattribute $2 ftpdctl_roles; ') ####################################### ## ## Execute a dyntransition to run sftpd. ## ## ## ## Domain allowed to transition. ## ## # interface(`ftp_dyntrans_sftpd',` gen_require(` type sftpd_t; ') dyntrans_pattern($1, sftpd_t) ') ######################################## ## ## All of the rules required to ## administrate an ftp environment. ## ## ## ## Domain allowed access. ## ## ## ## ## Role allowed access. ## ## ## # interface(`ftp_admin',` gen_require(` type ftpd_t, ftpdctl_t, ftpd_tmp_t; type ftpd_etc_t, ftpd_lock_t, sftpd_t; type ftpd_var_run_t, xferlog_t, anon_sftpd_t; type ftpd_initrc_exec_t, ftpdctl_tmp_t; type ftpd_keytab_t; ') allow $1 ftpd_t:process signal_perms; ps_process_pattern($1, { ftpd_t ftpdctl_t sftpd_t anon_sftpd_t }) tunable_policy(`deny_ptrace',`',` allow $1 { ftpd_t ftpdctl_t sftpd_t anon_sftpd_t }:process ptrace; ') init_labeled_script_domtrans($1, ftpd_initrc_exec_t) domain_system_change_exemption($1) role_transition $2 ftpd_initrc_exec_t system_r; allow $2 system_r; miscfiles_manage_public_files($1) files_list_tmp($1) admin_pattern($1, { ftpd_tmp_t ftpdctl_tmp_t }) files_list_etc($1) admin_pattern($1, { ftpd_etc_t ftpd_keytab_t }) files_list_var($1) admin_pattern($1, ftpd_lock_t) files_list_pids($1) admin_pattern($1, ftpd_var_run_t) logging_list_logs($1) admin_pattern($1, xferlog_t) ftp_systemctl($1) admin_pattern($1, ftpd_unit_file_t) allow $1 ftpd_unit_file_t:service all_service_perms; ftp_run_ftpdctl($1, $2) ')