many fixes from cab testing
This commit is contained in:
parent
c9a26b3e95
commit
efd8ede34d
@ -266,6 +266,8 @@ terminal_get_general_physical_terminal_attributes(rpm_script_t)
|
|||||||
terminal_list_pseudoterminals(rpm_script_t)
|
terminal_list_pseudoterminals(rpm_script_t)
|
||||||
|
|
||||||
authlogin_ignore_get_shadow_passwords_attributes(rpm_script_t)
|
authlogin_ignore_get_shadow_passwords_attributes(rpm_script_t)
|
||||||
|
# ideally we would not need this
|
||||||
|
authlogin_manage_all_files_except_shadow(rpm_script_t)
|
||||||
|
|
||||||
corecommands_execute_general_programs(rpm_script_t)
|
corecommands_execute_general_programs(rpm_script_t)
|
||||||
corecommands_execute_system_programs(rpm_script_t)
|
corecommands_execute_system_programs(rpm_script_t)
|
||||||
@ -307,8 +309,6 @@ ifdef(`TODO',`
|
|||||||
allow rpm_script_t sysfs_t:dir r_dir_perms;
|
allow rpm_script_t sysfs_t:dir r_dir_perms;
|
||||||
|
|
||||||
# ideally we would not need this
|
# ideally we would not need this
|
||||||
allow rpm_script_t { file_type - shadow_t }:dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir };
|
|
||||||
allow rpm_script_t { file_type - shadow_t }:{ file lnk_file fifo_file sock_file } { create ioctl read getattr lock write setattr append link unlink rename };
|
|
||||||
allow rpm_script_t { device_t device_type }:{ chr_file blk_file } { create ioctl read getattr lock write setattr append link unlink rename };
|
allow rpm_script_t { device_t device_type }:{ chr_file blk_file } { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
|
|
||||||
allow rpm_script_t usr_t:file { getattr read execute execute_no_trans };
|
allow rpm_script_t usr_t:file { getattr read execute execute_no_trans };
|
||||||
|
@ -300,9 +300,11 @@ define(`bootloader_modify_kernel_modules',`
|
|||||||
requires_block_template(`$0'_depend)
|
requires_block_template(`$0'_depend)
|
||||||
allow $1 modules_object_t:file { getattr create read write setattr unlink };
|
allow $1 modules_object_t:file { getattr create read write setattr unlink };
|
||||||
allow $1 modules_object_t:dir { getattr search read write add_name remove_name };
|
allow $1 modules_object_t:dir { getattr search read write add_name remove_name };
|
||||||
|
typeattribute $1 can_modify_kernel_modules;
|
||||||
')
|
')
|
||||||
|
|
||||||
define(`bootloader_modify_kernel_modules_depend',`
|
define(`bootloader_modify_kernel_modules_depend',`
|
||||||
|
attribute can_modify_kernel_modules;
|
||||||
type modules_object_t;
|
type modules_object_t;
|
||||||
class file { getattr create read write setattr unlink };
|
class file { getattr create read write setattr unlink };
|
||||||
class dir { getattr search read write add_name remove_name };
|
class dir { getattr search read write add_name remove_name };
|
||||||
|
@ -425,77 +425,20 @@ class dir { getattr read search };
|
|||||||
class chr_file { getattr write ioctl };
|
class chr_file { getattr write ioctl };
|
||||||
')
|
')
|
||||||
|
|
||||||
########################################
|
|
||||||
#
|
|
||||||
# devices_read_dev_null(domain)
|
|
||||||
#
|
|
||||||
define(`devices_read_dev_null',`
|
|
||||||
requires_block_template(`$0'_depend)
|
|
||||||
allow $1 device_t:dir { getattr read search };
|
|
||||||
allow $1 null_device_t:chr_file { getattr read };
|
|
||||||
')
|
|
||||||
|
|
||||||
define(`devices_read_dev_null_depend',`
|
|
||||||
type device_t, null_device_t;
|
|
||||||
class device_t:dir { getattr read search };
|
|
||||||
class chr_file { getattr read };
|
|
||||||
')
|
|
||||||
|
|
||||||
########################################
|
|
||||||
#
|
|
||||||
# devices_write_dev_null(domain)
|
|
||||||
#
|
|
||||||
define(`devices_write_dev_null',`
|
|
||||||
requires_block_template(`$0'_depend)
|
|
||||||
allow $1 device_t:dir { getattr read search };
|
|
||||||
allow $1 null_device_t:chr_file { getattr append write };
|
|
||||||
')
|
|
||||||
|
|
||||||
define(`devices_write_dev_null_depend',`
|
|
||||||
type device_t, null_device_t;
|
|
||||||
class device_t:dir { getattr read search };
|
|
||||||
class chr_file { getattr append write };
|
|
||||||
')
|
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# devices_use_dev_null(domain)
|
# devices_use_dev_null(domain)
|
||||||
#
|
#
|
||||||
define(`devices_use_dev_null',`
|
define(`devices_use_dev_null',`
|
||||||
devices_read_dev_null($1)
|
|
||||||
devices_write_dev_null($1)
|
|
||||||
')
|
|
||||||
|
|
||||||
########################################
|
|
||||||
#
|
|
||||||
# devices_read_dev_zero(domain)
|
|
||||||
#
|
|
||||||
define(`devices_read_dev_zero',`
|
|
||||||
requires_block_template(`$0'_depend)
|
requires_block_template(`$0'_depend)
|
||||||
allow $1 device_t:dir { getattr read search };
|
allow $1 device_t:dir { getattr read search };
|
||||||
allow $1 zero_device_t:chr_file { getattr read };
|
allow $1 null_device_t:chr_file { getattr read write append ioctl };
|
||||||
')
|
')
|
||||||
|
|
||||||
define(`devices_read_dev_zero_depend',`
|
define(`devices_use_dev_null_depend',`
|
||||||
type device_t, zero_device_t;
|
type device_t, null_device_t;
|
||||||
class device_t:dir { getattr read search };
|
class device_t:dir { getattr read search };
|
||||||
class chr_file { getattr read };
|
class chr_file { getattr read write append ioctl };
|
||||||
')
|
|
||||||
|
|
||||||
########################################
|
|
||||||
#
|
|
||||||
# devices_write_dev_zero(domain)
|
|
||||||
#
|
|
||||||
define(`devices_write_dev_zero',`
|
|
||||||
requires_block_template(`$0'_depend)
|
|
||||||
allow $1 device_t:dir { getattr read search };
|
|
||||||
allow $1 zero_device_t:chr_file { getattr append write };
|
|
||||||
')
|
|
||||||
|
|
||||||
define(`devices_write_dev_zero_depend',`
|
|
||||||
type device_t, zero_device_t;
|
|
||||||
class device_t:dir { getattr read search };
|
|
||||||
class chr_file { getattr append write };
|
|
||||||
')
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
@ -503,8 +446,15 @@ class chr_file { getattr append write };
|
|||||||
# devices_use_dev_zero(domain)
|
# devices_use_dev_zero(domain)
|
||||||
#
|
#
|
||||||
define(`devices_use_dev_zero',`
|
define(`devices_use_dev_zero',`
|
||||||
devices_read_dev_zero($1)
|
requires_block_template(`$0'_depend)
|
||||||
devices_write_dev_zero($1)
|
allow $1 device_t:dir { getattr read search };
|
||||||
|
allow $1 zero_device_t:chr_file { getattr read write append ioctl };
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`devices_use_dev_zero_depend',`
|
||||||
|
type device_t, zero_device_t;
|
||||||
|
class device_t:dir { getattr read search };
|
||||||
|
class chr_file { getattr read write append ioctl };
|
||||||
')
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
|
@ -972,6 +972,29 @@ class dir { getattr search read };
|
|||||||
class chr_file { getattr read write ioctl };
|
class chr_file { getattr read write ioctl };
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
## <interface name="filesystem_relabel_tmpfs_character_devices">
|
||||||
|
## <description>
|
||||||
|
## Relabel character nodes on tmpfs filesystems.
|
||||||
|
## </description>
|
||||||
|
## <parameter name="domain">
|
||||||
|
## The type of the process performing this action.
|
||||||
|
## </parameter>
|
||||||
|
## <infoflow type="both" weight="10"/>
|
||||||
|
## </interface>
|
||||||
|
#
|
||||||
|
define(`filesystem_relabel_tmpfs_character_devices',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
allow $1 tmpfs_t:dir { getattr search read };
|
||||||
|
allow $1 tmpfs_t:chr_file { getattr relabelfrom relabelto };
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`filesystem_relabel_tmpfs_character_devices_depend',`
|
||||||
|
type tmpfs_t;
|
||||||
|
class dir { getattr search read };
|
||||||
|
class chr_file { getattr relabelfrom relabelto };
|
||||||
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
## <interface name="filesystem_use_tmpfs_block_devices">
|
## <interface name="filesystem_use_tmpfs_block_devices">
|
||||||
## <description>
|
## <description>
|
||||||
@ -995,6 +1018,29 @@ class dir { getattr search read };
|
|||||||
class blk_file { getattr read write ioctl };
|
class blk_file { getattr read write ioctl };
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
## <interface name="filesystem_relabel_tmpfs_block_devices">
|
||||||
|
## <description>
|
||||||
|
## Relabel block nodes on tmpfs filesystems.
|
||||||
|
## </description>
|
||||||
|
## <parameter name="domain">
|
||||||
|
## The type of the process performing this action.
|
||||||
|
## </parameter>
|
||||||
|
## <infoflow type="both" weight="10"/>
|
||||||
|
## </interface>
|
||||||
|
#
|
||||||
|
define(`filesystem_relabel_tmpfs_block_devices',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
allow $1 tmpfs_t:dir { getattr search read };
|
||||||
|
allow $1 tmpfs_t:blk_file { getattr relabelfrom relabelto };
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`filesystem_use_tmpfs_block_devices_depend',`
|
||||||
|
type tmpfs_t;
|
||||||
|
class dir { getattr search read };
|
||||||
|
class blk_file { getattr relabelfrom relabelto };
|
||||||
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
## <interface name="filesystem_manage_tmpfs_character_devices">
|
## <interface name="filesystem_manage_tmpfs_character_devices">
|
||||||
## <description>
|
## <description>
|
||||||
|
@ -94,15 +94,19 @@ filesystem_get_all_filesystems_attributes(crond_t)
|
|||||||
|
|
||||||
terminal_ignore_use_console(crond_t)
|
terminal_ignore_use_console(crond_t)
|
||||||
|
|
||||||
init_use_file_descriptors(crond_t)
|
# need auth_chkpwd to check for locked accounts.
|
||||||
init_script_use_pseudoterminal(crond_t)
|
authlogin_check_password_transition(crond_t)
|
||||||
|
|
||||||
|
corecommands_execute_shell(crond_t)
|
||||||
|
corecommands_read_system_programs_directory(crond_t)
|
||||||
|
|
||||||
domain_use_widely_inheritable_file_descriptors(crond_t)
|
domain_use_widely_inheritable_file_descriptors(crond_t)
|
||||||
|
|
||||||
files_read_general_system_config(crond_t)
|
files_read_general_system_config(crond_t)
|
||||||
|
files_read_system_spools(crond_t)
|
||||||
|
|
||||||
corecommands_execute_shell(crond_t)
|
init_use_file_descriptors(crond_t)
|
||||||
corecommands_read_system_programs_directory(crond_t)
|
init_script_use_pseudoterminal(crond_t)
|
||||||
|
|
||||||
libraries_use_dynamic_loader(crond_t)
|
libraries_use_dynamic_loader(crond_t)
|
||||||
libraries_use_shared_libraries(crond_t)
|
libraries_use_shared_libraries(crond_t)
|
||||||
@ -115,8 +119,7 @@ selinux_newrole_sigchld(crond_t)
|
|||||||
|
|
||||||
miscfiles_read_localization(crond_t)
|
miscfiles_read_localization(crond_t)
|
||||||
|
|
||||||
# need auth_chkpwd to check for locked accounts.
|
userdomain_use_all_unprivileged_users_file_descriptors(crond_t)
|
||||||
authlogin_check_password_transition(crond_t)
|
|
||||||
|
|
||||||
tunable_policy(`fcron_crond', `
|
tunable_policy(`fcron_crond', `
|
||||||
allow crond_t system_cron_spool_t:file { create ioctl read getattr lock write setattr append link unlink rename };
|
allow crond_t system_cron_spool_t:file { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
@ -136,7 +139,6 @@ ifdef(`TODO',`
|
|||||||
# NB The constraints file has some entries for crond_t, this makes it
|
# NB The constraints file has some entries for crond_t, this makes it
|
||||||
# different from all other domains...
|
# different from all other domains...
|
||||||
|
|
||||||
allow crond_t unpriv_userdomain:fd use;
|
|
||||||
allow crond_t autofs_t:dir { search getattr };
|
allow crond_t autofs_t:dir { search getattr };
|
||||||
dontaudit crond_t sysadm_home_dir_t:dir search;
|
dontaudit crond_t sysadm_home_dir_t:dir search;
|
||||||
|
|
||||||
@ -153,18 +155,15 @@ allow crond_t autofs_t:dir { search getattr };
|
|||||||
|
|
||||||
# Read from /var/spool/cron.
|
# Read from /var/spool/cron.
|
||||||
allow crond_t var_lib_t:dir search;
|
allow crond_t var_lib_t:dir search;
|
||||||
allow crond_t var_spool_t:dir r_dir_perms;
|
|
||||||
allow crond_t var_spool_t:file { getattr read };
|
|
||||||
allow crond_t mail_spool_t:dir search;
|
allow crond_t mail_spool_t:dir search;
|
||||||
|
# for if /var/mail is a symlink
|
||||||
|
allow crond_t mail_spool_t:lnk_file read;
|
||||||
|
|
||||||
allow crond_t default_t:dir search;
|
allow crond_t default_t:dir search;
|
||||||
|
|
||||||
# crond tries to search /root. Not sure why.
|
# crond tries to search /root. Not sure why.
|
||||||
allow crond_t sysadm_home_dir_t:dir r_dir_perms;
|
allow crond_t sysadm_home_dir_t:dir r_dir_perms;
|
||||||
|
|
||||||
# for if /var/mail is a symlink
|
|
||||||
allow crond_t mail_spool_t:lnk_file read;
|
|
||||||
|
|
||||||
# to search /home
|
# to search /home
|
||||||
allow crond_t user_home_dir_type:dir r_dir_perms;
|
allow crond_t user_home_dir_type:dir r_dir_perms;
|
||||||
|
|
||||||
@ -269,6 +268,9 @@ files_get_all_file_attributes(system_crond_t)
|
|||||||
files_read_general_application_resources(system_crond_t)
|
files_read_general_application_resources(system_crond_t)
|
||||||
# for nscd:
|
# for nscd:
|
||||||
files_ignore_search_runtime_data_directory(system_crond_t)
|
files_ignore_search_runtime_data_directory(system_crond_t)
|
||||||
|
# Access other spool directories like
|
||||||
|
# /var/spool/anacron and /var/spool/slrnpull.
|
||||||
|
files_manage_system_spools(system_crond_t)
|
||||||
|
|
||||||
corecommands_execute_general_programs(system_crond_t)
|
corecommands_execute_general_programs(system_crond_t)
|
||||||
corecommands_execute_system_programs(system_crond_t)
|
corecommands_execute_system_programs(system_crond_t)
|
||||||
@ -324,14 +326,9 @@ allow system_crond_t var_t:file { getattr read ioctl };
|
|||||||
allow system_crond_t var_lib_t:dir rw_dir_perms;
|
allow system_crond_t var_lib_t:dir rw_dir_perms;
|
||||||
allow system_crond_t var_lib_t:file create_file_perms;
|
allow system_crond_t var_lib_t:file create_file_perms;
|
||||||
|
|
||||||
# Access other spool directories like
|
|
||||||
# /var/spool/anacron and /var/spool/slrnpull.
|
|
||||||
allow system_crond_t var_spool_t:file create_file_perms;
|
|
||||||
allow system_crond_t var_spool_t:dir rw_dir_perms;
|
|
||||||
# for if /var/mail is a symlink
|
# for if /var/mail is a symlink
|
||||||
allow system_crond_t mail_spool_t:lnk_file read;
|
allow system_crond_t mail_spool_t:lnk_file read;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# These rules are here to allow system cron jobs to su
|
# These rules are here to allow system cron jobs to su
|
||||||
#
|
#
|
||||||
@ -360,7 +357,6 @@ mta_send_mail_transition(system_crond_t)
|
|||||||
# system_mail_t should only be reading from the cron fifo not needing to write
|
# system_mail_t should only be reading from the cron fifo not needing to write
|
||||||
dontaudit system_mail_t crond_t:fifo_file write;
|
dontaudit system_mail_t crond_t:fifo_file write;
|
||||||
allow mta_user_agent system_crond_t:fd use;
|
allow mta_user_agent system_crond_t:fd use;
|
||||||
allow mta_user_agent system_crond_t:fd use;
|
|
||||||
r_dir_file(system_mail_t, crond_tmp_t)
|
r_dir_file(system_mail_t, crond_tmp_t)
|
||||||
')
|
')
|
||||||
|
|
||||||
|
@ -440,6 +440,58 @@ class file { create ioctl read getattr lock write setattr append link unlink ren
|
|||||||
class lnk_file { create read getattr setattr link unlink rename };
|
class lnk_file { create read getattr setattr link unlink rename };
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
## <interface name="authlogin_relabel_all_files_except_shadow">
|
||||||
|
## <description>
|
||||||
|
## Relabel all files on the filesystem, except
|
||||||
|
## the shadow passwords and listed exceptions.
|
||||||
|
## </description>
|
||||||
|
## <parameter name="domain">
|
||||||
|
## The type of the domain perfoming this action.
|
||||||
|
## </parameter>
|
||||||
|
## <parameter name="exception_types" optional="true">
|
||||||
|
## The types to be excluded. Each type or attribute
|
||||||
|
## must be negated by the caller.
|
||||||
|
## </parameter>
|
||||||
|
## <infoflow type="both" weight="10"/>
|
||||||
|
## </interface>
|
||||||
|
#
|
||||||
|
|
||||||
|
define(`authlogin_relabel_all_files_except_shadow',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
files_relabel_all_files($1,$2 -shadow_t)
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`authlogin_relabel_all_files_except_shadow_depend',`
|
||||||
|
type shadow_t;
|
||||||
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
## <interface name="authlogin_manage_all_files_except_shadow">
|
||||||
|
## <description>
|
||||||
|
## Manage all files on the filesystem, except
|
||||||
|
## the shadow passwords and listed exceptions.
|
||||||
|
## </description>
|
||||||
|
## <parameter name="domain">
|
||||||
|
## The type of the domain perfoming this action.
|
||||||
|
## </parameter>
|
||||||
|
## <parameter name="exception_types" optional="true">
|
||||||
|
## The types to be excluded. Each type or attribute
|
||||||
|
## must be negated by the caller.
|
||||||
|
## </parameter>
|
||||||
|
## <infoflow type="both" weight="10"/>
|
||||||
|
## </interface>
|
||||||
|
#
|
||||||
|
|
||||||
|
define(`authlogin_manage_all_files_except_shadow',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
files_manage_all_files($1,$2 -shadow_t)
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`authlogin_manage_all_files_except_shadow_depend',`
|
||||||
|
type shadow_t;
|
||||||
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
## <interface name="authlogin_utempter_transition">
|
## <interface name="authlogin_utempter_transition">
|
||||||
## <description>
|
## <description>
|
||||||
|
@ -62,7 +62,7 @@ define(`domain_make_entrypoint_file',`
|
|||||||
requires_block_template(`$0'_depend)
|
requires_block_template(`$0'_depend)
|
||||||
allow $1 $2:file entrypoint;
|
allow $1 $2:file entrypoint;
|
||||||
files_make_file($2)
|
files_make_file($2)
|
||||||
typeattribute $1 entry_type;
|
typeattribute $2 entry_type;
|
||||||
')
|
')
|
||||||
|
|
||||||
define(`domain_make_entrypoint_file_depend',`
|
define(`domain_make_entrypoint_file_depend',`
|
||||||
|
@ -99,7 +99,7 @@ attribute tmpfsfile;
|
|||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# files_get_all_file_attributes(domain)
|
# files_get_all_file_attributes(domain)
|
||||||
#
|
|
||||||
define(`files_get_all_file_attributes',`
|
define(`files_get_all_file_attributes',`
|
||||||
requires_block_template(`$0'_depend)
|
requires_block_template(`$0'_depend)
|
||||||
allow $1 file_type:dir { search getattr };
|
allow $1 file_type:dir { search getattr };
|
||||||
@ -119,23 +119,37 @@ class sock_file getattr;
|
|||||||
')
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
|
## <interface name="files_relabel_all_files">
|
||||||
|
## <description>
|
||||||
|
## Relabel all files on the filesystem, except
|
||||||
|
## the listed exceptions.
|
||||||
|
## </description>
|
||||||
|
## <parameter name="domain">
|
||||||
|
## The type of the domain perfoming this action.
|
||||||
|
## </parameter>
|
||||||
|
## <parameter name="exception_types" optional="true">
|
||||||
|
## The types to be excluded. Each type or attribute
|
||||||
|
## must be negated by the caller.
|
||||||
|
## </parameter>
|
||||||
|
## <infoflow type="both" weight="10"/>
|
||||||
|
## </interface>
|
||||||
#
|
#
|
||||||
# files_manage_all_files_labels(type)
|
define(`files_relabel_all_files',`
|
||||||
#
|
|
||||||
define(`files_manage_all_files_labels',`
|
|
||||||
requires_block_template(`$0'_depend)
|
requires_block_template(`$0'_depend)
|
||||||
allow $1 file_type:dir { getattr relabelfrom relabelto };
|
allow $1 { file_type $2 }:dir { getattr search read relabelfrom relabelto };
|
||||||
allow $1 file_type:file { getattr relabelfrom relabelto };
|
allow $1 { file_type $2 }:file { getattr relabelfrom relabelto };
|
||||||
allow $1 file_type:lnk_file { getattr relabelfrom relabelto };
|
allow $1 { file_type $2 }:lnk_file { getattr relabelfrom relabelto };
|
||||||
allow $1 file_type:fifo_file { getattr relabelfrom relabelto };
|
allow $1 { file_type $2 }:fifo_file { getattr relabelfrom relabelto };
|
||||||
allow $1 file_type:sock_file { getattr relabelfrom relabelto };
|
allow $1 { file_type $2 }:sock_file { getattr relabelfrom relabelto };
|
||||||
allow $1 file_type:blk_file { getattr relabelfrom };
|
allow $1 { file_type $2 }:blk_file { getattr relabelfrom };
|
||||||
allow $1 file_type:chr_file { getattr relabelfrom };
|
allow $1 { file_type $2 }:chr_file { getattr relabelfrom };
|
||||||
|
# satisfy the assertions:
|
||||||
|
selinux_relabelto_binary_policy($1)
|
||||||
')
|
')
|
||||||
|
|
||||||
define(`files_manage_all_files_labels_depend',`
|
define(`files_relabel_all_files_depend',`
|
||||||
attribute file_type;
|
attribute file_type;
|
||||||
class dir { relabelfrom relabelto };
|
class dir { getattr search read relabelfrom relabelto };
|
||||||
class file { relabelfrom relabelto };
|
class file { relabelfrom relabelto };
|
||||||
class lnk_file { relabelfrom relabelto };
|
class lnk_file { relabelfrom relabelto };
|
||||||
class fifo_file { relabelfrom relabelto };
|
class fifo_file { relabelfrom relabelto };
|
||||||
@ -144,6 +158,43 @@ class blk_file relabelfrom;
|
|||||||
class chr_file relabelfrom;
|
class chr_file relabelfrom;
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
## <interface name="files_manage_all_files">
|
||||||
|
## <description>
|
||||||
|
## Manage all files on the filesystem, except
|
||||||
|
## the listed exceptions.
|
||||||
|
## </description>
|
||||||
|
## <parameter name="domain">
|
||||||
|
## The type of the domain perfoming this action.
|
||||||
|
## </parameter>
|
||||||
|
## <parameter name="exception_types" optional="true">
|
||||||
|
## The types to be excluded. Each type or attribute
|
||||||
|
## must be negated by the caller.
|
||||||
|
## </parameter>
|
||||||
|
## <infoflow type="both" weight="10"/>
|
||||||
|
## </interface>
|
||||||
|
#
|
||||||
|
define(`files_manage_all_files',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
allow $1 { file_type $2 }:dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir };
|
||||||
|
allow $1 { file_type $2 }:file { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
|
allow $1 { file_type $2 }:lnk_file { create read getattr setattr link unlink rename };
|
||||||
|
allow $1 { file_type $2 }:fifo_file { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
|
allow $1 { file_type $2 }:sock_file { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
|
# satisfy the assertions:
|
||||||
|
selinux_write_binary_policy($1)
|
||||||
|
bootloader_modify_kernel_modules($1)
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`files_manage_all_files_depend',`
|
||||||
|
attribute file_type;
|
||||||
|
class dir { create read getattr lock setattr ioctl link unlink rename search add_name remove_name reparent write rmdir };
|
||||||
|
class file { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
|
class lnk_file { create read getattr setattr link unlink rename };
|
||||||
|
class fifo_file { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
|
class sock_file { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# files_search_all_directories(domain)
|
# files_search_all_directories(domain)
|
||||||
@ -646,6 +697,20 @@ class fifo_file { getattr unlink };
|
|||||||
class sock_file { getattr unlink };
|
class sock_file { getattr unlink };
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
#
|
||||||
|
# files_search_general_application_resources_dir(domain)
|
||||||
|
#
|
||||||
|
define(`files_search_general_application_resources_dir',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
allow $1 usr_t:dir search;
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`files_search_general_application_resources_dir_depend',`
|
||||||
|
type usr_t;
|
||||||
|
class dir search;
|
||||||
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# files_read_general_application_resources(domain)
|
# files_read_general_application_resources(domain)
|
||||||
@ -998,4 +1063,38 @@ type var_t, var_spool_t;
|
|||||||
class dir { getattr search read };
|
class dir { getattr search read };
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
#
|
||||||
|
# files_read_system_spools(domain)
|
||||||
|
#
|
||||||
|
define(`files_read_system_spools',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
allow $1 var_t:dir search;
|
||||||
|
allow $1 var_spool_t:dir { getattr search read };
|
||||||
|
allow $1 var_spool_t:file { getattr read };
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`files_read_system_spools_depend',`
|
||||||
|
type var_t, var_spool_t;
|
||||||
|
class dir { getattr search read };
|
||||||
|
class file { getattr read };
|
||||||
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
#
|
||||||
|
# files_manage_system_spools(domain)
|
||||||
|
#
|
||||||
|
define(`files_manage_system_spools',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
allow $1 var_t:dir search;
|
||||||
|
allow $1 var_spool_t:dir { getattr search read write add_name remove_name };
|
||||||
|
allow $1 var_spool_t:file { getattr create read write append unlink setattr };
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`files_manage_system_spools_depend',`
|
||||||
|
type var_t, var_spool_t;
|
||||||
|
class dir { getattr search read write add_name remove_name };
|
||||||
|
class file { getattr create read write append unlink setattr };
|
||||||
|
')
|
||||||
|
|
||||||
## </module>
|
## </module>
|
||||||
|
@ -44,6 +44,7 @@ filesystem_get_persistent_filesystem_attributes(getty_t)
|
|||||||
terminal_use_all_terminals(getty_t)
|
terminal_use_all_terminals(getty_t)
|
||||||
terminal_set_console_attributes(getty_t)
|
terminal_set_console_attributes(getty_t)
|
||||||
|
|
||||||
|
init_script_modify_runtime_data(getty_t)
|
||||||
init_script_use_pseudoterminal(getty_t)
|
init_script_use_pseudoterminal(getty_t)
|
||||||
|
|
||||||
files_modify_system_runtime_data(getty_t)
|
files_modify_system_runtime_data(getty_t)
|
||||||
@ -55,6 +56,9 @@ files_read_general_system_config(getty_t)
|
|||||||
|
|
||||||
authlogin_modify_login_records(getty_t)
|
authlogin_modify_login_records(getty_t)
|
||||||
|
|
||||||
|
libraries_use_dynamic_loader(getty_t)
|
||||||
|
libraries_use_shared_libraries(getty_t)
|
||||||
|
|
||||||
locallogin_transition(getty_t)
|
locallogin_transition(getty_t)
|
||||||
|
|
||||||
logging_send_system_log_message(getty_t)
|
logging_send_system_log_message(getty_t)
|
||||||
|
@ -112,7 +112,7 @@ optional_policy(`netutils.te', `
|
|||||||
netutils_transition(hotplug_t)
|
netutils_transition(hotplug_t)
|
||||||
filesystem_use_tmpfs_character_devices(hotplug_t)
|
filesystem_use_tmpfs_character_devices(hotplug_t)
|
||||||
') dnl endif netutils optional
|
') dnl endif netutils optional
|
||||||
files_get_system_lock_file_attribues(hotplug_t)
|
files_get_system_lock_file_attributes(hotplug_t)
|
||||||
')dnl end distro_redhat tunable
|
')dnl end distro_redhat tunable
|
||||||
|
|
||||||
tunable_policy(`targeted_policy', `
|
tunable_policy(`targeted_policy', `
|
||||||
|
@ -21,6 +21,12 @@ type init_exec_t;
|
|||||||
kernel_make_userland_entrypoint(init_t,init_exec_t)
|
kernel_make_userland_entrypoint(init_t,init_exec_t)
|
||||||
domain_make_entrypoint_file(init_t,init_exec_t)
|
domain_make_entrypoint_file(init_t,init_exec_t)
|
||||||
|
|
||||||
|
#
|
||||||
|
# init_var_run_t is the type for /var/run/shutdown.pid.
|
||||||
|
#
|
||||||
|
type init_var_run_t;
|
||||||
|
files_make_daemon_runtime_file(init_var_run_t)
|
||||||
|
|
||||||
#
|
#
|
||||||
# initctl_t is the type of the named pipe created
|
# initctl_t is the type of the named pipe created
|
||||||
# by init during initialization. This pipe is used
|
# by init during initialization. This pipe is used
|
||||||
@ -28,14 +34,6 @@ domain_make_entrypoint_file(init_t,init_exec_t)
|
|||||||
#
|
#
|
||||||
type initctl_t;
|
type initctl_t;
|
||||||
files_make_file(initctl_t)
|
files_make_file(initctl_t)
|
||||||
filesystem_tmpfs_associate(initctl_t)
|
|
||||||
devices_create_dev_entry(init_t,initctl_t,fifo_file)
|
|
||||||
|
|
||||||
#
|
|
||||||
# init_var_run_t is the type for /var/run/shutdown.pid.
|
|
||||||
#
|
|
||||||
type init_var_run_t;
|
|
||||||
files_make_daemon_runtime_file(init_var_run_t)
|
|
||||||
|
|
||||||
type initrc_t;
|
type initrc_t;
|
||||||
domain_make_domain(initrc_t)
|
domain_make_domain(initrc_t)
|
||||||
@ -70,6 +68,10 @@ allow init_t init_exec_t:file { getattr read execute execute_no_trans };
|
|||||||
allow init_t init_var_run_t:file { create getattr read append write setattr unlink };
|
allow init_t init_var_run_t:file { create getattr read append write setattr unlink };
|
||||||
files_create_daemon_runtime_data(init_t,init_var_run_t)
|
files_create_daemon_runtime_data(init_t,init_var_run_t)
|
||||||
|
|
||||||
|
allow init_t initctl_t:fifo_file { create getattr read append write setattr unlink };
|
||||||
|
filesystem_tmpfs_associate(initctl_t)
|
||||||
|
devices_create_dev_entry(init_t,initctl_t,fifo_file)
|
||||||
|
|
||||||
# Run init scripts. this is ok since initrc
|
# Run init scripts. this is ok since initrc
|
||||||
# is also in this module
|
# is also in this module
|
||||||
allow init_t initrc_t:process transition;
|
allow init_t initrc_t:process transition;
|
||||||
|
@ -132,6 +132,7 @@ class file { getattr read write };
|
|||||||
#
|
#
|
||||||
define(`libraries_use_shared_libraries',`
|
define(`libraries_use_shared_libraries',`
|
||||||
requires_block_template(`$0'_depend)
|
requires_block_template(`$0'_depend)
|
||||||
|
files_search_general_application_resources_dir($1)
|
||||||
allow $1 lib_t:dir { getattr search read };
|
allow $1 lib_t:dir { getattr search read };
|
||||||
allow $1 lib_t:lnk_file { getattr read };
|
allow $1 lib_t:lnk_file { getattr read };
|
||||||
allow $1 { shlib_t texrel_shlib_t }:lnk_file { getattr read };
|
allow $1 { shlib_t texrel_shlib_t }:lnk_file { getattr read };
|
||||||
|
@ -570,6 +570,29 @@ class dir { getattr search read write add_name remove_name };
|
|||||||
class file { getattr create write unlink };
|
class file { getattr create write unlink };
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
## <interface name="selinux_relabelto_binary_policy">
|
||||||
|
## <description>
|
||||||
|
## Allow the caller to relabel a file to the binary policy type.
|
||||||
|
## </description>
|
||||||
|
## <parameter name="domain">
|
||||||
|
## The type of the process performing this action.
|
||||||
|
## </parameter>
|
||||||
|
## <infoflow type="write" weight="10"/>
|
||||||
|
## </interface>
|
||||||
|
#
|
||||||
|
define(`selinux_relabelto_binary_policy',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
allow $1 policy_config_t:file relabelto;
|
||||||
|
typeattribute $1 can_relabelto_binary_policy;
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`selinux_relabelto_binary_policy_depend',`
|
||||||
|
attribute can_relabelto_binary_policy;
|
||||||
|
type policy_config_t;
|
||||||
|
class file relabelto;
|
||||||
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# selinux_manage_binary_policy(domain)
|
# selinux_manage_binary_policy(domain)
|
||||||
|
@ -108,7 +108,8 @@ type_transition checkpolicy_t policy_src_t:file policy_config_t;
|
|||||||
|
|
||||||
# only allow read of policy source files
|
# only allow read of policy source files
|
||||||
allow checkpolicy_t policy_src_t:dir { getattr search read };
|
allow checkpolicy_t policy_src_t:dir { getattr search read };
|
||||||
allow checkpolicy_t policy_src_t:{ file lnk_file } { getattr read };
|
allow checkpolicy_t policy_src_t:file { getattr read ioctl };
|
||||||
|
allow checkpolicy_t policy_src_t:lnk_file { getattr read };
|
||||||
allow checkpolicy_t selinux_config_t:dir search;
|
allow checkpolicy_t selinux_config_t:dir search;
|
||||||
|
|
||||||
filesystem_get_persistent_filesystem_attributes(checkpolicy_t)
|
filesystem_get_persistent_filesystem_attributes(checkpolicy_t)
|
||||||
@ -145,9 +146,9 @@ allow load_policy_t policy_src_t:dir search;
|
|||||||
allow load_policy_t policy_config_t:dir { getattr search read };
|
allow load_policy_t policy_config_t:dir { getattr search read };
|
||||||
allow load_policy_t policy_config_t:{ file lnk_file sock_file fifo_file } { getattr read };
|
allow load_policy_t policy_config_t:{ file lnk_file sock_file fifo_file } { getattr read };
|
||||||
|
|
||||||
allow newrole_t selinux_config_t:dir { getattr read search };
|
allow load_policy_t selinux_config_t:dir { getattr read search };
|
||||||
allow newrole_t selinux_config_t:file { read getattr };
|
allow load_policy_t selinux_config_t:file { read getattr };
|
||||||
allow newrole_t selinux_config_t:lnk_file { getattr read };
|
allow load_policy_t selinux_config_t:lnk_file { getattr read };
|
||||||
|
|
||||||
kernel_get_selinuxfs_mount_point(load_policy_t)
|
kernel_get_selinuxfs_mount_point(load_policy_t)
|
||||||
kernel_load_selinux_policy(load_policy_t)
|
kernel_load_selinux_policy(load_policy_t)
|
||||||
@ -163,6 +164,8 @@ init_script_use_pseudoterminal(load_policy_t)
|
|||||||
|
|
||||||
domain_use_widely_inheritable_file_descriptors(load_policy_t)
|
domain_use_widely_inheritable_file_descriptors(load_policy_t)
|
||||||
|
|
||||||
|
files_search_general_system_config_directory(load_policy_t)
|
||||||
|
|
||||||
libraries_use_dynamic_loader(load_policy_t)
|
libraries_use_dynamic_loader(load_policy_t)
|
||||||
libraries_use_shared_libraries(load_policy_t)
|
libraries_use_shared_libraries(load_policy_t)
|
||||||
|
|
||||||
@ -170,12 +173,6 @@ miscfiles_read_localization(load_policy_t)
|
|||||||
|
|
||||||
userdomain_use_all_users_file_descriptors(load_policy_t)
|
userdomain_use_all_users_file_descriptors(load_policy_t)
|
||||||
|
|
||||||
ifdef(`TODO',`
|
|
||||||
|
|
||||||
# directory search permissions for path to binary policy files
|
|
||||||
allow load_policy_t etc_t:dir search;
|
|
||||||
') dnl endif TODO
|
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# Newrole local policy
|
# Newrole local policy
|
||||||
@ -317,7 +314,7 @@ hotplug_use_file_descriptors(restorecon_t)
|
|||||||
# relabeling rules
|
# relabeling rules
|
||||||
kernel_relabel_unlabeled_object(restorecon_t)
|
kernel_relabel_unlabeled_object(restorecon_t)
|
||||||
devices_manage_all_devices_labels(restorecon_t)
|
devices_manage_all_devices_labels(restorecon_t)
|
||||||
files_manage_all_files_labels(restorecon_t)
|
files_relabel_all_files(restorecon_t)
|
||||||
files_read_all_directories(restorecon_t)
|
files_read_all_directories(restorecon_t)
|
||||||
# this is to satisfy the assertion:
|
# this is to satisfy the assertion:
|
||||||
authlogin_relabel_to_shadow_passwords(restorecon_t)
|
authlogin_relabel_to_shadow_passwords(restorecon_t)
|
||||||
@ -325,6 +322,8 @@ authlogin_relabel_to_shadow_passwords(restorecon_t)
|
|||||||
tunable_policy(`distro_redhat', `
|
tunable_policy(`distro_redhat', `
|
||||||
filesystem_use_tmpfs_character_devices(restorecon_t)
|
filesystem_use_tmpfs_character_devices(restorecon_t)
|
||||||
filesystem_use_tmpfs_block_devices(restorecon_t)
|
filesystem_use_tmpfs_block_devices(restorecon_t)
|
||||||
|
filesystem_relabel_tmpfs_block_devices(restorecon_t)
|
||||||
|
filesystem_relabel_tmpfs_character_devices(restorecon_t)
|
||||||
')
|
')
|
||||||
|
|
||||||
ifdef(`TODO',`
|
ifdef(`TODO',`
|
||||||
@ -333,11 +332,6 @@ ifdef(`TODO',`
|
|||||||
# scripts will put things in a state such that restorecon can not be run!
|
# scripts will put things in a state such that restorecon can not be run!
|
||||||
allow restorecon_t lib_t:file { read execute };
|
allow restorecon_t lib_t:file { read execute };
|
||||||
|
|
||||||
tunable_policy(`distro_redhat', `
|
|
||||||
allow restorecon_t tmpfs_t:chr_file { relabelfrom relabelto };
|
|
||||||
allow restorecon_t tmpfs_t:blk_file { relabelfrom relabelto };
|
|
||||||
')
|
|
||||||
|
|
||||||
allow restorecon_t fs_type:dir r_dir_perms;
|
allow restorecon_t fs_type:dir r_dir_perms;
|
||||||
|
|
||||||
allow restorecon_t device_t:file { read write };
|
allow restorecon_t device_t:file { read write };
|
||||||
@ -467,7 +461,7 @@ userdomain_read_all_users_data(setfiles_t)
|
|||||||
kernel_relabel_unlabeled_object(setfiles_t)
|
kernel_relabel_unlabeled_object(setfiles_t)
|
||||||
devices_manage_all_devices_labels(setfiles_t)
|
devices_manage_all_devices_labels(setfiles_t)
|
||||||
files_read_all_directories(setfiles_t)
|
files_read_all_directories(setfiles_t)
|
||||||
files_manage_all_files_labels(setfiles_t)
|
files_relabel_all_files(setfiles_t)
|
||||||
# this is to satisfy the assertion:
|
# this is to satisfy the assertion:
|
||||||
authlogin_relabel_to_shadow_passwords(setfiles_t)
|
authlogin_relabel_to_shadow_passwords(setfiles_t)
|
||||||
|
|
||||||
|
@ -570,6 +570,29 @@ class dir { getattr search read write add_name remove_name };
|
|||||||
class file { getattr create write unlink };
|
class file { getattr create write unlink };
|
||||||
')
|
')
|
||||||
|
|
||||||
|
########################################
|
||||||
|
## <interface name="selinux_relabelto_binary_policy">
|
||||||
|
## <description>
|
||||||
|
## Allow the caller to relabel a file to the binary policy type.
|
||||||
|
## </description>
|
||||||
|
## <parameter name="domain">
|
||||||
|
## The type of the process performing this action.
|
||||||
|
## </parameter>
|
||||||
|
## <infoflow type="write" weight="10"/>
|
||||||
|
## </interface>
|
||||||
|
#
|
||||||
|
define(`selinux_relabelto_binary_policy',`
|
||||||
|
requires_block_template(`$0'_depend)
|
||||||
|
allow $1 policy_config_t:file relabelto;
|
||||||
|
typeattribute $1 can_relabelto_binary_policy;
|
||||||
|
')
|
||||||
|
|
||||||
|
define(`selinux_relabelto_binary_policy_depend',`
|
||||||
|
attribute can_relabelto_binary_policy;
|
||||||
|
type policy_config_t;
|
||||||
|
class file relabelto;
|
||||||
|
')
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# selinux_manage_binary_policy(domain)
|
# selinux_manage_binary_policy(domain)
|
||||||
|
@ -108,7 +108,8 @@ type_transition checkpolicy_t policy_src_t:file policy_config_t;
|
|||||||
|
|
||||||
# only allow read of policy source files
|
# only allow read of policy source files
|
||||||
allow checkpolicy_t policy_src_t:dir { getattr search read };
|
allow checkpolicy_t policy_src_t:dir { getattr search read };
|
||||||
allow checkpolicy_t policy_src_t:{ file lnk_file } { getattr read };
|
allow checkpolicy_t policy_src_t:file { getattr read ioctl };
|
||||||
|
allow checkpolicy_t policy_src_t:lnk_file { getattr read };
|
||||||
allow checkpolicy_t selinux_config_t:dir search;
|
allow checkpolicy_t selinux_config_t:dir search;
|
||||||
|
|
||||||
filesystem_get_persistent_filesystem_attributes(checkpolicy_t)
|
filesystem_get_persistent_filesystem_attributes(checkpolicy_t)
|
||||||
@ -145,9 +146,9 @@ allow load_policy_t policy_src_t:dir search;
|
|||||||
allow load_policy_t policy_config_t:dir { getattr search read };
|
allow load_policy_t policy_config_t:dir { getattr search read };
|
||||||
allow load_policy_t policy_config_t:{ file lnk_file sock_file fifo_file } { getattr read };
|
allow load_policy_t policy_config_t:{ file lnk_file sock_file fifo_file } { getattr read };
|
||||||
|
|
||||||
allow newrole_t selinux_config_t:dir { getattr read search };
|
allow load_policy_t selinux_config_t:dir { getattr read search };
|
||||||
allow newrole_t selinux_config_t:file { read getattr };
|
allow load_policy_t selinux_config_t:file { read getattr };
|
||||||
allow newrole_t selinux_config_t:lnk_file { getattr read };
|
allow load_policy_t selinux_config_t:lnk_file { getattr read };
|
||||||
|
|
||||||
kernel_get_selinuxfs_mount_point(load_policy_t)
|
kernel_get_selinuxfs_mount_point(load_policy_t)
|
||||||
kernel_load_selinux_policy(load_policy_t)
|
kernel_load_selinux_policy(load_policy_t)
|
||||||
@ -163,6 +164,8 @@ init_script_use_pseudoterminal(load_policy_t)
|
|||||||
|
|
||||||
domain_use_widely_inheritable_file_descriptors(load_policy_t)
|
domain_use_widely_inheritable_file_descriptors(load_policy_t)
|
||||||
|
|
||||||
|
files_search_general_system_config_directory(load_policy_t)
|
||||||
|
|
||||||
libraries_use_dynamic_loader(load_policy_t)
|
libraries_use_dynamic_loader(load_policy_t)
|
||||||
libraries_use_shared_libraries(load_policy_t)
|
libraries_use_shared_libraries(load_policy_t)
|
||||||
|
|
||||||
@ -170,12 +173,6 @@ miscfiles_read_localization(load_policy_t)
|
|||||||
|
|
||||||
userdomain_use_all_users_file_descriptors(load_policy_t)
|
userdomain_use_all_users_file_descriptors(load_policy_t)
|
||||||
|
|
||||||
ifdef(`TODO',`
|
|
||||||
|
|
||||||
# directory search permissions for path to binary policy files
|
|
||||||
allow load_policy_t etc_t:dir search;
|
|
||||||
') dnl endif TODO
|
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
#
|
#
|
||||||
# Newrole local policy
|
# Newrole local policy
|
||||||
@ -317,7 +314,7 @@ hotplug_use_file_descriptors(restorecon_t)
|
|||||||
# relabeling rules
|
# relabeling rules
|
||||||
kernel_relabel_unlabeled_object(restorecon_t)
|
kernel_relabel_unlabeled_object(restorecon_t)
|
||||||
devices_manage_all_devices_labels(restorecon_t)
|
devices_manage_all_devices_labels(restorecon_t)
|
||||||
files_manage_all_files_labels(restorecon_t)
|
files_relabel_all_files(restorecon_t)
|
||||||
files_read_all_directories(restorecon_t)
|
files_read_all_directories(restorecon_t)
|
||||||
# this is to satisfy the assertion:
|
# this is to satisfy the assertion:
|
||||||
authlogin_relabel_to_shadow_passwords(restorecon_t)
|
authlogin_relabel_to_shadow_passwords(restorecon_t)
|
||||||
@ -325,6 +322,8 @@ authlogin_relabel_to_shadow_passwords(restorecon_t)
|
|||||||
tunable_policy(`distro_redhat', `
|
tunable_policy(`distro_redhat', `
|
||||||
filesystem_use_tmpfs_character_devices(restorecon_t)
|
filesystem_use_tmpfs_character_devices(restorecon_t)
|
||||||
filesystem_use_tmpfs_block_devices(restorecon_t)
|
filesystem_use_tmpfs_block_devices(restorecon_t)
|
||||||
|
filesystem_relabel_tmpfs_block_devices(restorecon_t)
|
||||||
|
filesystem_relabel_tmpfs_character_devices(restorecon_t)
|
||||||
')
|
')
|
||||||
|
|
||||||
ifdef(`TODO',`
|
ifdef(`TODO',`
|
||||||
@ -333,11 +332,6 @@ ifdef(`TODO',`
|
|||||||
# scripts will put things in a state such that restorecon can not be run!
|
# scripts will put things in a state such that restorecon can not be run!
|
||||||
allow restorecon_t lib_t:file { read execute };
|
allow restorecon_t lib_t:file { read execute };
|
||||||
|
|
||||||
tunable_policy(`distro_redhat', `
|
|
||||||
allow restorecon_t tmpfs_t:chr_file { relabelfrom relabelto };
|
|
||||||
allow restorecon_t tmpfs_t:blk_file { relabelfrom relabelto };
|
|
||||||
')
|
|
||||||
|
|
||||||
allow restorecon_t fs_type:dir r_dir_perms;
|
allow restorecon_t fs_type:dir r_dir_perms;
|
||||||
|
|
||||||
allow restorecon_t device_t:file { read write };
|
allow restorecon_t device_t:file { read write };
|
||||||
@ -467,7 +461,7 @@ userdomain_read_all_users_data(setfiles_t)
|
|||||||
kernel_relabel_unlabeled_object(setfiles_t)
|
kernel_relabel_unlabeled_object(setfiles_t)
|
||||||
devices_manage_all_devices_labels(setfiles_t)
|
devices_manage_all_devices_labels(setfiles_t)
|
||||||
files_read_all_directories(setfiles_t)
|
files_read_all_directories(setfiles_t)
|
||||||
files_manage_all_files_labels(setfiles_t)
|
files_relabel_all_files(setfiles_t)
|
||||||
# this is to satisfy the assertion:
|
# this is to satisfy the assertion:
|
||||||
authlogin_relabel_to_shadow_passwords(setfiles_t)
|
authlogin_relabel_to_shadow_passwords(setfiles_t)
|
||||||
|
|
||||||
|
@ -57,9 +57,9 @@ allow dhcpc_t dhcpc_tmp_t:dir { create read getattr lock setattr ioctl link unli
|
|||||||
allow dhcpc_t dhcpc_tmp_t:file { create ioctl read getattr lock write setattr append link unlink rename };
|
allow dhcpc_t dhcpc_tmp_t:file { create ioctl read getattr lock write setattr append link unlink rename };
|
||||||
files_create_private_tmp_data(dhcpc_t, dhcpc_tmp_t, { file dir })
|
files_create_private_tmp_data(dhcpc_t, dhcpc_tmp_t, { file dir })
|
||||||
|
|
||||||
# Allow dhcpc_t to use packet sockets
|
allow dhcpc_t self:tcp_socket { create ioctl read getattr write setattr append bind getopt setopt shutdown };
|
||||||
|
allow dhcpc_t self:udp_socket { create ioctl read getattr write setattr append bind getopt setopt shutdown };
|
||||||
allow dhcpc_t self:packet_socket { create ioctl read getattr write setattr append bind connect getopt setopt shutdown };
|
allow dhcpc_t self:packet_socket { create ioctl read getattr write setattr append bind connect getopt setopt shutdown };
|
||||||
|
|
||||||
allow dhcpc_t self:netlink_route_socket { create ioctl read getattr write setattr append bind connect getopt setopt shutdown nlmsg_read };
|
allow dhcpc_t self:netlink_route_socket { create ioctl read getattr write setattr append bind connect getopt setopt shutdown nlmsg_read };
|
||||||
|
|
||||||
allow dhcpc_t self:fifo_file { ioctl read getattr lock write append };
|
allow dhcpc_t self:fifo_file { ioctl read getattr lock write append };
|
||||||
|
@ -10,6 +10,10 @@
|
|||||||
|
|
||||||
define(`base_user_domain',`
|
define(`base_user_domain',`
|
||||||
|
|
||||||
|
attribute $1_file_type;
|
||||||
|
|
||||||
|
type $1_t, userdomain;
|
||||||
|
corecommands_make_shell_entrypoint($1_t)
|
||||||
role $1_r types $1_t;
|
role $1_r types $1_t;
|
||||||
allow system_r $1_r;
|
allow system_r $1_r;
|
||||||
|
|
||||||
@ -370,9 +374,10 @@ define(`user_domain_template', `
|
|||||||
# Declarations
|
# Declarations
|
||||||
#
|
#
|
||||||
|
|
||||||
attribute $1_file_type;
|
# Inherit rules for ordinary users.
|
||||||
|
base_user_domain($1)
|
||||||
|
|
||||||
type $1_t, userdomain, unpriv_userdomain; #, web_client_domain, nscd_client_domain;
|
typeattribute $1_t unpriv_userdomain; #, web_client_domain, nscd_client_domain;
|
||||||
domain_make_domain($1_t)
|
domain_make_domain($1_t)
|
||||||
domain_make_file_descriptors_widely_inheritable($1_t)
|
domain_make_file_descriptors_widely_inheritable($1_t)
|
||||||
|
|
||||||
@ -398,9 +403,6 @@ terminal_make_physical_terminal($1_t,$1_tty_device_t)
|
|||||||
# Local policy
|
# Local policy
|
||||||
#
|
#
|
||||||
|
|
||||||
# Inherit rules for ordinary users.
|
|
||||||
base_user_domain($1)
|
|
||||||
|
|
||||||
allow $1_t $1_devpts_t:chr_file { setattr ioctl read getattr lock write append };
|
allow $1_t $1_devpts_t:chr_file { setattr ioctl read getattr lock write append };
|
||||||
terminal_create_private_pseudoterminal($1_t,$1_devpts_t)
|
terminal_create_private_pseudoterminal($1_t,$1_devpts_t)
|
||||||
|
|
||||||
@ -584,9 +586,10 @@ define(`admin_domain_template',`
|
|||||||
# Declarations
|
# Declarations
|
||||||
#
|
#
|
||||||
|
|
||||||
attribute $1_file_type;
|
# Inherit rules for ordinary users.
|
||||||
|
base_user_domain($1)
|
||||||
|
|
||||||
type $1_t, userdomain, privhome; #, admin, web_client_domain, nscd_client_domain;
|
typeattribute $1_t privhome; #, admin, web_client_domain, nscd_client_domain;
|
||||||
kernel_make_object_identity_change_constraint_exception($1_t)
|
kernel_make_object_identity_change_constraint_exception($1_t)
|
||||||
domain_make_domain($1_t)
|
domain_make_domain($1_t)
|
||||||
role system_r types $1_t;
|
role system_r types $1_t;
|
||||||
@ -615,9 +618,6 @@ terminal_make_physical_terminal($1_t,$1_tty_device_t)
|
|||||||
# $1_t local policy
|
# $1_t local policy
|
||||||
#
|
#
|
||||||
|
|
||||||
# Inherit rules for ordinary users.
|
|
||||||
base_user_domain($1)
|
|
||||||
|
|
||||||
allow $1_t self:capability ~sys_module;
|
allow $1_t self:capability ~sys_module;
|
||||||
allow $1_t self:process { setexec setfscreate };
|
allow $1_t self:process { setexec setfscreate };
|
||||||
|
|
||||||
@ -682,6 +682,11 @@ terminal_use_general_physical_terminal($1_t)
|
|||||||
terminal_use_all_private_pseudoterminals($1_t)
|
terminal_use_all_private_pseudoterminals($1_t)
|
||||||
terminal_use_all_private_physical_terminals($1_t)
|
terminal_use_all_private_physical_terminals($1_t)
|
||||||
|
|
||||||
|
# Manage almost all files
|
||||||
|
authlogin_manage_all_files_except_shadow($1_t)
|
||||||
|
# Relabel almost all files
|
||||||
|
authlogin_relabel_all_files_except_shadow($1_t)
|
||||||
|
|
||||||
domain_set_all_domains_priorities($1_t)
|
domain_set_all_domains_priorities($1_t)
|
||||||
|
|
||||||
files_execute_system_source_code_scripts($1_t)
|
files_execute_system_source_code_scripts($1_t)
|
||||||
@ -710,18 +715,6 @@ ifdef(`TODO',`
|
|||||||
# Let admin stat the shadow file.
|
# Let admin stat the shadow file.
|
||||||
allow $1_t shadow_t:file getattr;
|
allow $1_t shadow_t:file getattr;
|
||||||
|
|
||||||
# Create and use all files that have the sysadmfile attribute.
|
|
||||||
allow $1_t sysadmfile:{ file sock_file fifo_file } create_file_perms;
|
|
||||||
allow $1_t sysadmfile:lnk_file create_lnk_perms;
|
|
||||||
allow $1_t sysadmfile:dir create_dir_perms;
|
|
||||||
|
|
||||||
# Relabel all files.
|
|
||||||
# Actually this will not allow relabeling ALL files unless you change
|
|
||||||
# sysadmfile to file_type (and change the assertion in assert.te that
|
|
||||||
# only auth_write can relabel shadow_t)
|
|
||||||
allow $1_t sysadmfile:dir { getattr read search relabelfrom relabelto };
|
|
||||||
allow $1_t sysadmfile:notdevfile_class_set { getattr relabelfrom relabelto };
|
|
||||||
|
|
||||||
# for lsof
|
# for lsof
|
||||||
allow $1_t mtrr_device_t:file getattr;
|
allow $1_t mtrr_device_t:file getattr;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user