add ftpdctl from paul howarth
This commit is contained in:
parent
371097ef6f
commit
75fbbb0b48
@ -1,3 +1,4 @@
|
|||||||
|
- Add ftpdctl domain to ftp, from Paul Howarth.
|
||||||
- Fix build system to not move type declarations out of optionals.
|
- Fix build system to not move type declarations out of optionals.
|
||||||
- Add gcc-config domain to portage.
|
- Add gcc-config domain to portage.
|
||||||
- Add packet object class and support in corenetwork.
|
- Add packet object class and support in corenetwork.
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
#
|
#
|
||||||
# /usr
|
# /usr
|
||||||
#
|
#
|
||||||
|
/usr/bin/ftpdctl -- gen_context(system_u:object_r:ftpdctl_exec_t,s0)
|
||||||
|
|
||||||
/usr/kerberos/sbin/ftpd -- gen_context(system_u:object_r:ftpd_exec_t,s0)
|
/usr/kerberos/sbin/ftpd -- gen_context(system_u:object_r:ftpd_exec_t,s0)
|
||||||
|
|
||||||
/usr/sbin/ftpwho -- gen_context(system_u:object_r:ftpd_exec_t,s0)
|
/usr/sbin/ftpwho -- gen_context(system_u:object_r:ftpd_exec_t,s0)
|
||||||
|
@ -109,3 +109,26 @@ interface(`ftp_read_log',`
|
|||||||
logging_search_logs($1)
|
logging_search_logs($1)
|
||||||
allow $1 xferlog_t:file r_file_perms;
|
allow $1 xferlog_t:file r_file_perms;
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
## <summary>
|
||||||
|
## Execute the ftpdctl program in the ftpdctl domain.
|
||||||
|
## </summary>
|
||||||
|
## <param name="domain">
|
||||||
|
## <summary>
|
||||||
|
## Domain allowed access.
|
||||||
|
## </summary>
|
||||||
|
## </param>
|
||||||
|
#
|
||||||
|
interface(`ftp_domtrans_ftpdctl',`
|
||||||
|
gen_require(`
|
||||||
|
type ftpdctl_t, ftpdctl_exec_t;
|
||||||
|
')
|
||||||
|
|
||||||
|
corecmd_search_bin($1)
|
||||||
|
domain_auto_trans($1, ftpdctl_exec_t, ftpdctl_t)
|
||||||
|
|
||||||
|
allow ftpdctl_t $1:fd use;
|
||||||
|
allow ftpdctl_t $1:fifo_file rw_file_perms;
|
||||||
|
allow ftpdctl_t $1:process sigchld;
|
||||||
|
')
|
||||||
|
@ -26,12 +26,19 @@ files_tmpfs_file(ftpd_tmpfs_t)
|
|||||||
type ftpd_var_run_t;
|
type ftpd_var_run_t;
|
||||||
files_pid_file(ftpd_var_run_t)
|
files_pid_file(ftpd_var_run_t)
|
||||||
|
|
||||||
|
type ftpdctl_t;
|
||||||
|
type ftpdctl_exec_t;
|
||||||
|
init_system_domain(ftpdctl_t,ftpdctl_exec_t)
|
||||||
|
|
||||||
|
type ftpdctl_tmp_t;
|
||||||
|
files_tmp_file(ftpdctl_tmp_t)
|
||||||
|
|
||||||
type xferlog_t;
|
type xferlog_t;
|
||||||
logging_log_file(xferlog_t)
|
logging_log_file(xferlog_t)
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# Local policy
|
# ftpd local policy
|
||||||
#
|
#
|
||||||
|
|
||||||
allow ftpd_t self:capability { chown fowner fsetid setgid setuid sys_chroot sys_nice sys_resource };
|
allow ftpd_t self:capability { chown fowner fsetid setgid setuid sys_chroot sys_nice sys_resource };
|
||||||
@ -40,7 +47,7 @@ allow ftpd_t self:process signal_perms;
|
|||||||
allow ftpd_t self:process { getcap setcap setsched setrlimit };
|
allow ftpd_t self:process { getcap setcap setsched setrlimit };
|
||||||
allow ftpd_t self:fifo_file rw_file_perms;
|
allow ftpd_t self:fifo_file rw_file_perms;
|
||||||
allow ftpd_t self:unix_dgram_socket { sendto create_socket_perms };
|
allow ftpd_t self:unix_dgram_socket { sendto create_socket_perms };
|
||||||
allow ftpd_t self:unix_stream_socket create_socket_perms;
|
allow ftpd_t self:unix_stream_socket create_stream_socket_perms;
|
||||||
allow ftpd_t self:tcp_socket create_stream_socket_perms;
|
allow ftpd_t self:tcp_socket create_stream_socket_perms;
|
||||||
allow ftpd_t self:udp_socket create_socket_perms;
|
allow ftpd_t self:udp_socket create_socket_perms;
|
||||||
|
|
||||||
@ -62,6 +69,12 @@ allow ftpd_t ftpd_var_run_t:dir rw_dir_perms;
|
|||||||
allow ftpd_t ftpd_var_run_t:sock_file manage_file_perms;
|
allow ftpd_t ftpd_var_run_t:sock_file manage_file_perms;
|
||||||
files_pid_filetrans(ftpd_t,ftpd_var_run_t,file)
|
files_pid_filetrans(ftpd_t,ftpd_var_run_t,file)
|
||||||
|
|
||||||
|
# proftpd requires the client side to bind a socket so that
|
||||||
|
# it can stat the socket to perform access control decisions,
|
||||||
|
# since getsockopt with SO_PEERCRED is not available on all
|
||||||
|
# proftpd-supported OSs
|
||||||
|
allow ftpd_t ftpdctl_tmp_t:sock_file { getattr unlink };
|
||||||
|
|
||||||
# Create and modify /var/log/xferlog.
|
# Create and modify /var/log/xferlog.
|
||||||
allow ftpd_t xferlog_t:dir search_dir_perms;
|
allow ftpd_t xferlog_t:dir search_dir_perms;
|
||||||
allow ftpd_t xferlog_t:file create_file_perms;
|
allow ftpd_t xferlog_t:file create_file_perms;
|
||||||
@ -234,3 +247,28 @@ optional_policy(`
|
|||||||
optional_policy(`
|
optional_policy(`
|
||||||
udev_read_db(ftpd_t)
|
udev_read_db(ftpd_t)
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
#
|
||||||
|
# ftpdctl local policy
|
||||||
|
#
|
||||||
|
|
||||||
|
# Allow ftpdctl to talk to ftpd over a socket connection
|
||||||
|
allow ftpdctl_t ftpd_t:unix_stream_socket connectto;
|
||||||
|
allow ftpdctl_t ftpd_var_run_t:dir search;
|
||||||
|
allow ftpdctl_t ftpd_var_run_t:sock_file write;
|
||||||
|
|
||||||
|
# ftpdctl creates a socket so that the daemon can perform
|
||||||
|
# access control decisions (see comments in ftpd_t rules above)
|
||||||
|
allow ftpdctl_t ftpdctl_tmp_t:sock_file { create setattr };
|
||||||
|
files_tmp_filetrans(ftpdctl_t, ftpdctl_tmp_t, sock_file)
|
||||||
|
|
||||||
|
# Allow ftpdctl to read config files
|
||||||
|
files_read_etc_files(ftpdctl_t)
|
||||||
|
|
||||||
|
libs_use_ld_so(ftpdctl_t)
|
||||||
|
libs_use_shared_libs(ftpdctl_t)
|
||||||
|
|
||||||
|
ifdef(`targeted_policy',`
|
||||||
|
term_use_generic_ptys(ftpdctl_t)
|
||||||
|
')
|
||||||
|
@ -105,6 +105,10 @@ ifdef(`targeted_policy',`
|
|||||||
firstboot_domtrans(unconfined_t)
|
firstboot_domtrans(unconfined_t)
|
||||||
')
|
')
|
||||||
|
|
||||||
|
optional_policy(`
|
||||||
|
ftp_domtrans_ftpdctl(unconfined_t)
|
||||||
|
')
|
||||||
|
|
||||||
optional_policy(`
|
optional_policy(`
|
||||||
inn_domtrans(unconfined_t)
|
inn_domtrans(unconfined_t)
|
||||||
')
|
')
|
||||||
|
Loading…
Reference in New Issue
Block a user