Re: [PATCH] SELinux: more user friendly unknown handling printk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2008-06-09 at 16:51 -0400, Eric Paris wrote:
> I've gotten complaints and reports about people not understanding the
> meaning of the current unknown class/perm handling the kernel emits on
> every policy load.  Hopefully this will make make it clear to everyone
> the meaning of the message and won't waste a printk the user won't care
> about anyway on systems where the kernel and the policy agree on
> everything.
> 
> Signed-off-by: Eric Paris <eparis@xxxxxxxxxx>

Acked-by:  Stephen Smalley <sds@xxxxxxxxxxxxx>

> 
> ---
> 
>  security/selinux/selinuxfs.c   |    5 -----
>  security/selinux/ss/services.c |    7 +++++++
>  2 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
> index ac1ccc1..f47c9c9 100644
> --- a/security/selinux/selinuxfs.c
> +++ b/security/selinux/selinuxfs.c
> @@ -352,11 +352,6 @@ static ssize_t sel_write_load(struct file *file, const char __user *buf,
>  		length = count;
>  
>  out1:
> -
> -	printk(KERN_INFO "SELinux: policy loaded with handle_unknown=%s\n",
> -	       (security_get_reject_unknown() ? "reject" :
> -		(security_get_allow_unknown() ? "allow" : "deny")));
> -
>  	audit_log(current->audit_context, GFP_KERNEL, AUDIT_MAC_POLICY_LOAD,
>  		"policy loaded auid=%u ses=%u",
>  		audit_get_loginuid(current),
> diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
> index dcc2e1c..c837982 100644
> --- a/security/selinux/ss/services.c
> +++ b/security/selinux/ss/services.c
> @@ -1110,6 +1110,7 @@ static int validate_classes(struct policydb *p)
>  	const struct selinux_class_perm *kdefs = &selinux_class_perm;
>  	const char *def_class, *def_perm, *pol_class;
>  	struct symtab *perms;
> +	bool print_unknown_handle = 0;
>  
>  	if (p->allow_unknown) {
>  		u32 num_classes = kdefs->cts_len;
> @@ -1130,6 +1131,7 @@ static int validate_classes(struct policydb *p)
>  				return -EINVAL;
>  			if (p->allow_unknown)
>  				p->undefined_perms[i-1] = ~0U;
> +			print_unknown_handle = 1;
>  			continue;
>  		}
>  		pol_class = p->p_class_val_to_name[i-1];
> @@ -1159,6 +1161,7 @@ static int validate_classes(struct policydb *p)
>  				return -EINVAL;
>  			if (p->allow_unknown)
>  				p->undefined_perms[class_val-1] |= perm_val;
> +			print_unknown_handle = 1;
>  			continue;
>  		}
>  		perdatum = hashtab_search(perms->table, def_perm);
> @@ -1206,6 +1209,7 @@ static int validate_classes(struct policydb *p)
>  					return -EINVAL;
>  				if (p->allow_unknown)
>  					p->undefined_perms[class_val-1] |= (1 << j);
> +				print_unknown_handle = 1;
>  				continue;
>  			}
>  			perdatum = hashtab_search(perms->table, def_perm);
> @@ -1223,6 +1227,9 @@ static int validate_classes(struct policydb *p)
>  			}
>  		}
>  	}
> +	if (print_unknown_handle)
> +		printk(KERN_INFO "SELinux: the above unknown classes and permissions will be %s\n",
> +			(security_get_allow_unknown() ? "allowed" : "denied"));
>  	return 0;
>  }
>  
> 
-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.

[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux