From: cpebenito@tresys.com (Christopher J. PeBenito)
Date: Fri, 9 Sep 2011 11:58:02 -0400
Subject: [refpolicy] This patch removes use of
auth*files_except_auth_files in order to shrink size of policy.
In-Reply-To: <4E57ADE0.7080908@redhat.com>
References: <4E57ADE0.7080908@redhat.com>
Message-ID: <4E6A378A.9090309@tresys.com>
To: refpolicy@oss.tresys.com
List-Id: refpolicy.oss.tresys.com
On 08/26/11 10:29, Daniel J Walsh wrote:
> diff --git a/policy/modules/admin/dpkg.te b/policy/modules/admin/dpkg.te
> index 633d2fc..8d62407 100644
> --- a/policy/modules/admin/dpkg.te
> +++ b/policy/modules/admin/dpkg.te
> @@ -140,8 +140,8 @@ storage_raw_write_fixed_disk(dpkg_t)
> # for installing kernel packages
> storage_raw_read_fixed_disk(dpkg_t)
>
> -auth_relabel_all_files_except_auth_files(dpkg_t)
> -auth_manage_all_files_except_auth_files(dpkg_t)
> +files_relabel_non_security_files(dpkg_t)
> +files_manage_non_security_files(dpkg_t)
> auth_dontaudit_read_shadow(dpkg_t)
>
> files_exec_etc_files(dpkg_t)
> @@ -286,7 +286,7 @@ term_use_all_terms(dpkg_script_t)
>
> auth_dontaudit_getattr_shadow(dpkg_script_t)
> # ideally we would not need this
> -auth_manage_all_files_except_auth_files(dpkg_script_t)
> +files_manage_non_security_files(dpkg_script_t)
>
> init_domtrans_script(dpkg_script_t)
> init_use_script_fds(dpkg_script_t)
> diff --git a/policy/modules/admin/rpm.te b/policy/modules/admin/rpm.te
> index 7d964bf..ba6e400 100644
> --- a/policy/modules/admin/rpm.te
> +++ b/policy/modules/admin/rpm.te
> @@ -154,8 +154,8 @@ storage_raw_read_fixed_disk(rpm_t)
>
> term_list_ptys(rpm_t)
>
> -auth_relabel_all_files_except_auth_files(rpm_t)
> -auth_manage_all_files_except_auth_files(rpm_t)
> +files_relabel_all_files(rpm_t)
> +files_manage_all_files(rpm_t)
> auth_dontaudit_read_shadow(rpm_t)
> auth_use_nsswitch(rpm_t)
>
> @@ -304,8 +304,8 @@ term_use_all_terms(rpm_script_t)
> auth_dontaudit_getattr_shadow(rpm_script_t)
> auth_use_nsswitch(rpm_script_t)
> # ideally we would not need this
> -auth_manage_all_files_except_auth_files(rpm_script_t)
> -auth_relabel_shadow(rpm_script_t)
> +files_manage_all_files(rpm_script_t)
> +files_relabel_all_files(rpm_script_t)
>
> corecmd_exec_all_executables(rpm_script_t)
>
> diff --git a/policy/modules/admin/sosreport.te b/policy/modules/admin/sosreport.te
> index ebaff2f..de6b197 100644
> --- a/policy/modules/admin/sosreport.te
> +++ b/policy/modules/admin/sosreport.te
> @@ -80,7 +80,7 @@ fs_list_inotifyfs(sosreport_t)
>
> # some config files do not have configfile attribute
> # sosreport needs to read various files on system
> -auth_read_all_files_except_auth_files(sosreport_t)
> +files_read_non_security_files(sosreport_t)
> auth_use_nsswitch(sosreport_t)
>
> init_domtrans_script(sosreport_t)
> diff --git a/policy/modules/admin/sxid.te b/policy/modules/admin/sxid.te
> index 045fb86..a51a92d 100644
> --- a/policy/modules/admin/sxid.te
> +++ b/policy/modules/admin/sxid.te
> @@ -66,7 +66,7 @@ fs_list_all(sxid_t)
>
> term_dontaudit_use_console(sxid_t)
>
> -auth_read_all_files_except_auth_files(sxid_t)
> +files_read_non_security_files(sxid_t)
> auth_dontaudit_getattr_shadow(sxid_t)
>
> init_use_fds(sxid_t)
> diff --git a/policy/modules/kernel/files.if b/policy/modules/kernel/files.if
> index deb24b4..225c263 100644
> --- a/policy/modules/kernel/files.if
> +++ b/policy/modules/kernel/files.if
> @@ -663,12 +663,63 @@ interface(`files_read_non_security_files',`
> attribute non_security_file_type;
> ')
>
> + list_dirs_pattern($1, non_security_file_type, non_security_file_type)
> read_files_pattern($1, non_security_file_type, non_security_file_type)
> read_lnk_files_pattern($1, non_security_file_type, non_security_file_type)
> ')
>
> ########################################
> ##
> +## Manage all non-security files.
> +##
> +##
> +##
> +## Domain allowed access.
> +##
> +##
> +##
> +#
> +interface(`files_manage_non_security_files',`
> + gen_require(`
> + attribute non_security_file_type;
> + ')
> +
> + manage_files_pattern($1, non_security_file_type, non_security_file_type)
> + manage_lnk_files_pattern($1, non_security_file_type, non_security_file_type)
> +')
> +
> +########################################
> +##
> +## Relabel all non-security files.
> +##
> +##
> +##
> +## Domain allowed access.
> +##
> +##
> +##
> +#
> +interface(`files_relabel_non_security_files',`
> + gen_require(`
> + attribute non_security_file_type;
> + ')
> +
> + relabel_files_pattern($1, non_security_file_type, non_security_file_type)
> + allow $1 { non_security_file_type }:dir list_dir_perms;
> + relabel_dirs_pattern($1, { non_security_file_type }, { non_security_file_type })
> + relabel_files_pattern($1, { non_security_file_type }, { non_security_file_type })
> + relabel_lnk_files_pattern($1, { non_security_file_type }, { non_security_file_type })
> + relabel_fifo_files_pattern($1, { non_security_file_type }, { non_security_file_type })
> + relabel_sock_files_pattern($1, { non_security_file_type }, { non_security_file_type })
> + relabel_blk_files_pattern($1, { non_security_file_type }, { non_security_file_type })
> + relabel_chr_files_pattern($1, { non_security_file_type }, { non_security_file_type })
> +
> + # satisfy the assertions:
> + seutil_relabelto_bin_policy($1)
> +')
> +
> +########################################
> +##
> ## Read all directories on the filesystem, except
> ## the listed exceptions.
> ##
> @@ -2451,7 +2502,7 @@ interface(`files_read_etc_files',`
> ##
> ##
> ##
> -## Domain allowed access.
> +## Domain to not audit.
> ##
> ##
> #
> @@ -3945,7 +3996,7 @@ interface(`files_getattr_tmp_dirs',`
> ##
> ##
> ##
> -## Domain allowed access.
> +## Domain to not audit.
> ##
> ##
> #
> @@ -4017,7 +4068,7 @@ interface(`files_list_tmp',`
> ##
> ##
> ##
> -## Domain not to audit.
> +## Domain to not audit.
> ##
> ##
> #
> @@ -4202,7 +4253,7 @@ interface(`files_relabel_all_tmp_dirs',`
> ##
> ##
> ##
> -## Domain not to audit.
> +## Domain to not audit.
> ##
> ##
> #
> @@ -4262,7 +4313,7 @@ interface(`files_relabel_all_tmp_files',`
> ##
> ##
> ##
> -## Domain not to audit.
> +## Domain to not audit.
> ##
> ##
> #
> diff --git a/policy/modules/kernel/kernel.te b/policy/modules/kernel/kernel.te
> index eac9961..797f131 100644
> --- a/policy/modules/kernel/kernel.te
> +++ b/policy/modules/kernel/kernel.te
> @@ -336,7 +336,7 @@ optional_policy(`
> fs_read_noxattr_fs_symlinks(kernel_t)
>
> auth_read_all_dirs_except_auth_files(kernel_t)
> - auth_read_all_files_except_auth_files(kernel_t)
> + files_read_non_security_files(kernel_t)
> auth_read_all_symlinks_except_auth_files(kernel_t)
> ')
>
> @@ -346,7 +346,7 @@ optional_policy(`
> fs_read_noxattr_fs_files(kernel_t)
> fs_read_noxattr_fs_symlinks(kernel_t)
>
> - auth_manage_all_files_except_auth_files(kernel_t)
> + files_manage_non_security_files(kernel_t)
> ')
> ')
>
> diff --git a/policy/modules/roles/secadm.te b/policy/modules/roles/secadm.te
> index 89ddeaa..4b5119b 100644
> --- a/policy/modules/roles/secadm.te
> +++ b/policy/modules/roles/secadm.te
> @@ -30,7 +30,7 @@ mls_file_upgrade(secadm_t)
> mls_file_downgrade(secadm_t)
>
> auth_role(secadm_r, secadm_t)
> -auth_relabel_all_files_except_auth_files(secadm_t)
> +files_relabel_non_security_files(secadm_t)
> auth_relabel_shadow(secadm_t)
>
> init_exec(secadm_t)
> diff --git a/policy/modules/services/ftp.te b/policy/modules/services/ftp.te
> index 02ffdfb..69c2d2c 100644
> --- a/policy/modules/services/ftp.te
> +++ b/policy/modules/services/ftp.te
> @@ -261,7 +261,7 @@ tunable_policy(`allow_ftpd_use_nfs && allow_ftpd_anon_write',`
>
> tunable_policy(`allow_ftpd_full_access',`
> allow ftpd_t self:capability { dac_override dac_read_search };
> - auth_manage_all_files_except_auth_files(ftpd_t)
> + files_manage_non_security_files(ftpd_t)
> ')
>
> tunable_policy(`ftp_home_dir',`
> @@ -394,7 +394,7 @@ tunable_policy(`sftpd_enable_homedirs && use_samba_home_dirs',`
> tunable_policy(`sftpd_full_access',`
> allow sftpd_t self:capability { dac_override dac_read_search };
> fs_read_noxattr_fs_files(sftpd_t)
> - auth_manage_all_files_except_auth_files(sftpd_t)
> + files_manage_non_security_files(sftpd_t)
> ')
>
> tunable_policy(`use_samba_home_dirs',`
> diff --git a/policy/modules/services/puppet.te b/policy/modules/services/puppet.te
> index 941f6e1..68985da 100644
> --- a/policy/modules/services/puppet.te
> +++ b/policy/modules/services/puppet.te
> @@ -134,7 +134,7 @@ sysnet_dns_name_resolve(puppet_t)
> sysnet_run_ifconfig(puppet_t, system_r)
>
> tunable_policy(`puppet_manage_all_files',`
> - auth_manage_all_files_except_auth_files(puppet_t)
> + files_manage_non_security_files(puppet_t)
> ')
>
> optional_policy(`
> diff --git a/policy/modules/services/rgmanager.te b/policy/modules/services/rgmanager.te
> index c537000..52ec13b 100644
> --- a/policy/modules/services/rgmanager.te
> +++ b/policy/modules/services/rgmanager.te
> @@ -92,7 +92,7 @@ term_getattr_pty_fs(rgmanager_t)
> #term_use_ptmx(rgmanager_t)
>
> # needed by resources scripts
> -auth_read_all_files_except_auth_files(rgmanager_t)
> +files_read_non_security_files(rgmanager_t)
> auth_dontaudit_getattr_shadow(rgmanager_t)
> auth_use_nsswitch(rgmanager_t)
>
> diff --git a/policy/modules/services/rpc.te b/policy/modules/services/rpc.te
> index 62fca97..6c6d18b 100644
> --- a/policy/modules/services/rpc.te
> +++ b/policy/modules/services/rpc.te
> @@ -158,7 +158,7 @@ tunable_policy(`nfs_export_all_rw',`
> dev_getattr_all_chr_files(nfsd_t)
>
> fs_read_noxattr_fs_files(nfsd_t)
> - auth_manage_all_files_except_auth_files(nfsd_t)
> + files_manage_non_security_files(nfsd_t)
> ')
>
> tunable_policy(`nfs_export_all_ro',`
> @@ -171,7 +171,7 @@ tunable_policy(`nfs_export_all_ro',`
> fs_read_noxattr_fs_files(nfsd_t)
>
> auth_read_all_dirs_except_auth_files(nfsd_t)
> - auth_read_all_files_except_auth_files(nfsd_t)
> + files_read_non_security_files(nfsd_t)
> ')
>
> ########################################
> diff --git a/policy/modules/services/rsync.te b/policy/modules/services/rsync.te
> index 1c381e1..51cedbd 100644
> --- a/policy/modules/services/rsync.te
> +++ b/policy/modules/services/rsync.te
> @@ -126,7 +126,7 @@ tunable_policy(`rsync_export_all_ro',`
> fs_read_nfs_files(rsync_t)
> fs_read_cifs_files(rsync_t)
> auth_read_all_dirs_except_auth_files(rsync_t)
> - auth_read_all_files_except_auth_files(rsync_t)
> + files_read_non_security_files(rsync_t)
> auth_read_all_symlinks_except_auth_files(rsync_t)
> auth_tunable_read_shadow(rsync_t)
> ')
> diff --git a/policy/modules/services/samba.te b/policy/modules/services/samba.te
> index df830cf..d1f1a15 100644
> --- a/policy/modules/services/samba.te
> +++ b/policy/modules/services/samba.te
> @@ -451,17 +451,17 @@ tunable_policy(`samba_create_home_dirs',`
> tunable_policy(`samba_export_all_ro',`
> fs_read_noxattr_fs_files(smbd_t)
> auth_read_all_dirs_except_auth_files(smbd_t)
> - auth_read_all_files_except_auth_files(smbd_t)
> + files_read_non_security_files(smbd_t)
> fs_read_noxattr_fs_files(nmbd_t)
> auth_read_all_dirs_except_auth_files(nmbd_t)
> - auth_read_all_files_except_auth_files(nmbd_t)
> + files_read_non_security_files(nmbd_t)
> ')
>
> tunable_policy(`samba_export_all_rw',`
> fs_read_noxattr_fs_files(smbd_t)
> - auth_manage_all_files_except_auth_files(smbd_t)
> + files_manage_non_security_files(smbd_t)
> fs_read_noxattr_fs_files(nmbd_t)
> - auth_manage_all_files_except_auth_files(nmbd_t)
> + files_manage_non_security_files(nmbd_t)
> userdom_user_home_dir_filetrans_user_home_content(nmbd_t, { file dir })
> ')
>
> diff --git a/policy/modules/system/mount.te b/policy/modules/system/mount.te
> index 94e49e8..fd331b9 100644
> --- a/policy/modules/system/mount.te
> +++ b/policy/modules/system/mount.te
> @@ -143,7 +143,7 @@ ifdef(`distro_ubuntu',`
>
> tunable_policy(`allow_mount_anyfile',`
> auth_read_all_dirs_except_auth_files(mount_t)
> - auth_read_all_files_except_auth_files(mount_t)
> + files_read_non_security_files(mount_t)
> files_mounton_non_security(mount_t)
> ')
>
> diff --git a/policy/modules/system/selinuxutil.te b/policy/modules/system/selinuxutil.te
> index 508b206..52a5442 100644
> --- a/policy/modules/system/selinuxutil.te
> +++ b/policy/modules/system/selinuxutil.te
> @@ -327,8 +327,8 @@ selinux_compute_create_context(restorecond_t)
> selinux_compute_relabel_context(restorecond_t)
> selinux_compute_user_contexts(restorecond_t)
>
> -auth_relabel_all_files_except_auth_files(restorecond_t )
> -auth_read_all_files_except_auth_files(restorecond_t)
> +files_relabel_non_security_files(restorecond_t )
> +files_read_non_security_files(restorecond_t)
> auth_use_nsswitch(restorecond_t)
>
> locallogin_dontaudit_use_fds(restorecond_t)
Generally speaking, I'm fine with this. However, I'm looking closely to make sure the new calls that are being made are the right ones.
--
Chris PeBenito
Tresys Technology, LLC
www.tresys.com | oss.tresys.com