diff --git a/refpolicy/policy/modules/system/init.te b/refpolicy/policy/modules/system/init.te index a53af29..7a98123 100644 --- a/refpolicy/policy/modules/system/init.te +++ b/refpolicy/policy/modules/system/init.te @@ -20,6 +20,22 @@ type init_var_run_t; files_make_file(init_var_run_t) files_create_daemon_runtime_data(init_t,init_var_run_t) +# Re-exec itself +allow init_t init_exec_t:file { getattr read execute execute_no_trans }; + +# For /var/run/shutdown.pid. +allow init_t init_var_run_t:file { create getattr read append write setattr unlink }; + +# Run init scripts. this is ok since initrc +# is also in this module +allow init_t initrc_t:process transition; +allow init_t initrc_exec_t:file { getattr read execute }; + +# Create unix sockets +allow init_t self:unix_dgram_socket { create ioctl read getattr write setattr append bind connect getopt setopt shutdown }; +allow init_t self:unix_stream_socket { create ioctl read getattr write setattr append bind connect getopt setopt shutdown }; +allow init_t self:fifo_file { read write ioctl }; + kernel_transition_from(init_t,init_exec_t) kernel_sigchld_from(init_t) @@ -41,6 +57,10 @@ domain_kill_all_domains(init_t) files_modify_system_runtime_data(init_t) +# file descriptors inherited from the rootfs. +files_ignore_modify_rootfs_file(init_t) +files_ignore_modify_rootfs_device(init_t) + libraries_use_dynamic_loader(init_t) libraries_read_shared_libraries(init_t) @@ -52,22 +72,6 @@ selinux_read_config(init_t) miscfiles_read_localization(init_t) -# Re-exec itself -allow init_t init_exec_t:file { getattr read execute execute_no_trans }; - -# For /var/run/shutdown.pid. -allow init_t init_var_run_t:file { create getattr read append write setattr unlink }; - -# Run init scripts. this is ok since initrc -# is also in this module -allow init_t initrc_t:process transition; -allow init_t initrc_exec_t:file { getattr read execute }; - -# Create unix sockets -allow init_t self:unix_dgram_socket { create ioctl read getattr write setattr append bind connect getopt setopt shutdown }; -allow init_t self:unix_stream_socket { create ioctl read getattr write setattr append bind connect getopt setopt shutdown }; -allow init_t self:fifo_file { read write ioctl }; - ######################################## # # the following seem questionable @@ -117,11 +121,11 @@ allow init_t lib_t:file { getattr read }; # for mount points allow init_t file_t:dir search; -# file descriptors inherited from the rootfs. -dontaudit init_t root_t:{ file chr_file } { read write }; - - +############################################################ +# +# Init script policy +# type initrc_t; @@ -290,6 +294,8 @@ libraries_read_shared_libraries(run_init_t) selinux_read_config(run_init_t) +authlogin_ignore_read_shadow_passwords(run_init_t) + miscfiles_read_localization(run_init_t) allow run_init_t initrc_t:process transition; @@ -426,8 +432,6 @@ allow run_init_t admin_tty_type:chr_file rw_file_perms; allow run_init_t privfd:fd use; allow run_init_t lib_t:file { getattr read }; -dontaudit run_init_t shadow_t:file { getattr read }; - # often the administrator runs such programs from a directory that is owned # by a different user or has restrictive SE permissions, do not want to audit # the failed access to the current directory