All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: I am concerned about putting genhomedircon changes inlibsemanage into Fedora 8.
  2007-09-26 20:01 I am concerned about putting genhomedircon changes inlibsemanage into Fedora 8 Todd C. Miller
@ 2007-09-26 20:00 ` Stephen Smalley
  2007-09-26 20:20   ` Stephen Smalley
  0 siblings, 1 reply; 7+ messages in thread
From: Stephen Smalley @ 2007-09-26 20:00 UTC (permalink / raw)
  To: Todd C. Miller; +Cc: dwalsh, selinux

On Wed, 2007-09-26 at 16:01 -0400, Todd C. Miller wrote:
> I've added the checks Steve suggested.  It doesn't appear to cause
> any new regressions.  I didn't do a real parse of the contexts file
> line--I just grab the last whitespace-delimited field.  This should
> be sufficient since the line comes from the template file and the
> added checks will reject a bogus context, should it occur.
> 
>  - todd
> 
> Index: libsemanage/src/genhomedircon.c
> ===================================================================
> --- libsemanage/src/genhomedircon.c	(revision 2587)
> +++ libsemanage/src/genhomedircon.c	(working copy)
> @@ -1,5 +1,6 @@
> -/* Author: Mark Goldman   <mgoldman@tresys.com>
> - * 			Paul Rosenfeld	<prosenfeld@tresys.com>
> +/* Author: Mark Goldman	  <mgoldman@tresys.com>
> + * 	   Paul Rosenfeld <prosenfeld@tresys.com>
> + * 	   Todd C. Miller <tmiller@tresys.com>
>   *
>   * Copyright (C) 2007 Tresys Technology, LLC
>   *
> @@ -23,6 +24,9 @@
>  #include <semanage/seusers_policy.h>
>  #include <semanage/users_policy.h>
>  #include <semanage/user_record.h>
> +#include <sepol/context.h>
> +#include <sepol/context_record.h>
> +#include <sepol/policydb/context.h>

That last include shouldn't be necessary - the headers under
sepol/policydb/ are private to the static lib.

>  #include "semanage_store.h"
>  #include "seuser_internal.h"
>  #include "debug.h"
> @@ -80,6 +84,7 @@
>  	int usepasswd;
>  	const char *homedir_template_path;
>  	semanage_handle_t *h_semanage;
> +	sepol_policydb_t *policydb;
>  } genhomedircon_settings_t;
>  
>  typedef struct user_entry {
> @@ -352,10 +357,47 @@
>  	return retval;
>  }
>  
> -static int write_home_dir_context(FILE * out, semanage_list_t * tpl,
> -				  const char *user, const char *seuser,
> -				  const char *home, const char *role_prefix)
> +static const char * extract_context(Ustr *line)
>  {
> +	const char whitespace[] = " \t\n";
> +	size_t off, len;
> +
> +	/* check for trailing whitespace */
> +	off = ustr_spn_chrs_rev(line, 0, whitespace, strlen(whitespace));
> +
> +	/* find the length of the last field in line */
> +	len = ustr_cspn_chrs_rev(line, off, whitespace, strlen(whitespace));
> +
> +	if (len == 0)
> +		return NULL;
> +	return ustr_cstr(line) + ustr_len(line) - (len + off);
> +}
> +
> +static int check_line(genhomedircon_settings_t * s, Ustr *line)
> +{
> +	sepol_context_t *ctx_record = NULL;
> +	const char *ctx_str;
> +	int result;
> +
> +	ctx_str = extract_context(line);
> +	if (!ctx_str)
> +		return STATUS_ERR;
> +
> +	result = sepol_context_from_string(s->h_semanage->sepolh,
> +					   ctx_str, &ctx_record);
> +	if (result == STATUS_SUCCESS && ctx_record != NULL) {
> +		result = sepol_context_check(s->h_semanage->sepolh,
> +					     s->policydb, ctx_record);
> +		sepol_context_free(ctx_record);
> +	}
> +	return result;
> +}
> +
> +static int write_home_dir_context(genhomedircon_settings_t * s, FILE * out,
> +				  semanage_list_t * tpl, const char *user,
> +				  const char *seuser, const char *home,
> +				  const char *role_prefix)
> +{
>  	replacement_pair_t repl[] = {
>  		{.search_for = TEMPLATE_SEUSER,.replace_with = seuser},
>  		{.search_for = TEMPLATE_HOME_DIR,.replace_with = home},
> @@ -369,8 +411,12 @@
>  
>  	for (; tpl; tpl = tpl->next) {
>  		line = replace_all(tpl->data, repl);
> -		if (!line || !ustr_io_putfileline(&line, out))
> +		if (!line)
>  			goto fail;
> +		if (check_line(s, line) == STATUS_SUCCESS) {
> +			if (!ustr_io_putfileline(&line, out))
> +				goto fail;
> +		}
>  		ustr_sc_free(&line);
>  	}
>  	return STATUS_SUCCESS;
> @@ -380,8 +426,8 @@
>  	return STATUS_ERR;
>  }
>  
> -static int write_home_root_context(FILE * out, semanage_list_t * tpl,
> -				   char *homedir)
> +static int write_home_root_context(genhomedircon_settings_t * s, FILE * out,
> +				   semanage_list_t * tpl, char *homedir)
>  {
>  	replacement_pair_t repl[] = {
>  		{.search_for = TEMPLATE_HOME_ROOT,.replace_with = homedir},
> @@ -391,8 +437,12 @@
>  
>  	for (; tpl; tpl = tpl->next) {
>  		line = replace_all(tpl->data, repl);
> -		if (!line || !ustr_io_putfileline(&line, out))
> +		if (!line)
>  			goto fail;
> +		if (check_line(s, line) == STATUS_SUCCESS) {
> +			if (!ustr_io_putfileline(&line, out))
> +				goto fail;
> +		}
>  		ustr_sc_free(&line);
>  	}
>  	return STATUS_SUCCESS;
> @@ -402,7 +452,8 @@
>  	return STATUS_ERR;
>  }
>  
> -static int write_user_context(FILE * out, semanage_list_t * tpl, char *user,
> +static int write_user_context(genhomedircon_settings_t * s, FILE * out,
> +			      semanage_list_t * tpl, char *user,
>  			      char *seuser, char *role_prefix)
>  {
>  	replacement_pair_t repl[] = {
> @@ -415,8 +466,12 @@
>  
>  	for (; tpl; tpl = tpl->next) {
>  		line = replace_all(tpl->data, repl);
> -		if (!line || !ustr_io_putfileline(&line, out))
> +		if (!line)
>  			goto fail;
> +		if (check_line(s, line) == STATUS_SUCCESS) {
> +			if (!ustr_io_putfileline(&line, out))
> +				goto fail;
> +		}
>  		ustr_sc_free(&line);
>  	}
>  	return STATUS_SUCCESS;
> @@ -602,7 +657,7 @@
>  	return head;
>  }
>  
> -static int write_gen_home_dir_context(FILE * out, genhomedircon_settings_t * s,
> +static int write_gen_home_dir_context(genhomedircon_settings_t * s, FILE * out,
>  				      semanage_list_t * user_context_tpl,
>  				      semanage_list_t * homedir_context_tpl)
>  {
> @@ -615,13 +670,13 @@
>  	}
>  
>  	for (; users; pop_user_entry(&users)) {
> -		if (write_home_dir_context(out, homedir_context_tpl,
> +		if (write_home_dir_context(s, out, homedir_context_tpl,
>  					   users->name,
>  					   users->sename, users->home,
>  					   users->prefix)) {
>  			return STATUS_ERR;
>  		}
> -		if (write_user_context(out, user_context_tpl, users->name,
> +		if (write_user_context(s, out, user_context_tpl, users->name,
>  				       users->sename, users->prefix)) {
>  			return STATUS_ERR;
>  		}
> @@ -671,7 +726,7 @@
>  			goto done;
>  		}
>  
> -		if (write_home_dir_context(out,
> +		if (write_home_dir_context(s, out,
>  					   homedir_context_tpl, FALLBACK_USER,
>  					   FALLBACK_USER, ustr_cstr(temp),
>  					   FALLBACK_USER_PREFIX) !=
> @@ -680,7 +735,7 @@
>  			retval = STATUS_ERR;
>  			goto done;
>  		}
> -		if (write_home_root_context(out,
> +		if (write_home_root_context(s, out,
>  					    homeroot_context_tpl,
>  					    h->data) != STATUS_SUCCESS) {
>  			ustr_sc_free(&temp);
> @@ -690,13 +745,13 @@
>  
>  		ustr_sc_free(&temp);
>  	}
> -	if (write_user_context(out, user_context_tpl,
> +	if (write_user_context(s, out, user_context_tpl,
>  			       ".*", FALLBACK_USER,
>  			       FALLBACK_USER_PREFIX) != STATUS_SUCCESS) {
>  		retval = STATUS_ERR;
>  		goto done;
>  	}
> -	if (write_gen_home_dir_context(out, s, user_context_tpl,
> +	if (write_gen_home_dir_context(s, out, user_context_tpl,
>  				       homedir_context_tpl) != STATUS_SUCCESS) {
>  		retval = STATUS_ERR;
>  	}
> @@ -711,7 +766,9 @@
>  	return retval;
>  }
>  
> -int semanage_genhomedircon(semanage_handle_t * sh, int usepasswd)
> +int semanage_genhomedircon(semanage_handle_t * sh,
> +			   sepol_policydb_t * policydb,
> +			   int usepasswd)
>  {
>  	genhomedircon_settings_t s;
>  	FILE *out = NULL;
> @@ -725,6 +782,7 @@
>  
>  	s.usepasswd = usepasswd;
>  	s.h_semanage = sh;
> +	s.policydb = policydb;
>  
>  	if (!(out = fopen(s.fcfilepath, "w"))) {
>  		/* couldn't open output file */
> Index: libsemanage/src/genhomedircon.h
> ===================================================================
> --- libsemanage/src/genhomedircon.h	(revision 2587)
> +++ libsemanage/src/genhomedircon.h	(working copy)
> @@ -22,6 +22,7 @@
>  
>  #include "utilities.h"
>  
> -int semanage_genhomedircon(semanage_handle_t * sh, int usepasswd);
> +int semanage_genhomedircon(semanage_handle_t * sh,
> +			   sepol_policydb_t * policydb, int usepasswd);
>  
>  #endif
> Index: libsemanage/src/direct_api.c
> ===================================================================
> --- libsemanage/src/direct_api.c	(revision 2587)
> +++ libsemanage/src/direct_api.c	(working copy)
> @@ -702,7 +702,7 @@
>  		goto cleanup;
>  
>  	if (sh->do_rebuild || modified) {
> -		retval = semanage_install_sandbox(sh);
> +		retval = semanage_install_sandbox(sh, out);
>  	}
>  
>        cleanup:
> Index: libsemanage/src/semanage_store.c
> ===================================================================
> --- libsemanage/src/semanage_store.c	(revision 2587)
> +++ libsemanage/src/semanage_store.c	(working copy)
> @@ -1279,7 +1279,8 @@
>   * should be placed within a mutex lock to ensure that it runs
>   * atomically.	Returns commit number on success, -1 on error.
>   */
> -int semanage_install_sandbox(semanage_handle_t * sh)
> +int semanage_install_sandbox(semanage_handle_t * sh,
> +			     sepol_policydb_t * policydb)
>  {
>  	int retval = -1, commit_num = -1;
>  
> @@ -1294,7 +1295,7 @@
>  	}
>  	if (!sh->conf->disable_genhomedircon) {
>  		if ((retval =
> -		     semanage_genhomedircon(sh, TRUE)) != 0) {
> +		     semanage_genhomedircon(sh, policydb, TRUE)) != 0) {
>  			ERR(sh, "semanage_genhomedircon returned error code %d.",
>  			    retval);
>  			goto cleanup;
> Index: libsemanage/src/semanage_store.h
> ===================================================================
> --- libsemanage/src/semanage_store.h	(revision 2587)
> +++ libsemanage/src/semanage_store.h	(working copy)
> @@ -83,8 +83,6 @@
>  int semanage_get_modules_names(semanage_handle_t * sh,
>  			       char ***filenames, int *len);
>  
> -int semanage_install_sandbox(semanage_handle_t * sh);
> -
>  /* lock file routines */
>  int semanage_get_trans_lock(semanage_handle_t * sh);
>  int semanage_get_active_lock(semanage_handle_t * sh);
> @@ -102,7 +100,8 @@
>  int semanage_write_policydb(semanage_handle_t * sh,
>  			    sepol_policydb_t * policydb);
>  
> -int semanage_install_sandbox(semanage_handle_t * sh);
> +int semanage_install_sandbox(semanage_handle_t * sh,
> +			     sepol_policydb_t * policydb);
>  
>  int semanage_verify_modules(semanage_handle_t * sh,
>  			    char **module_filenames, int num_modules);
-- 
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@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: I am concerned about putting genhomedircon changes inlibsemanage into Fedora 8.
@ 2007-09-26 20:01 Todd C. Miller
  2007-09-26 20:00 ` Stephen Smalley
  0 siblings, 1 reply; 7+ messages in thread
From: Todd C. Miller @ 2007-09-26 20:01 UTC (permalink / raw)
  To: dwalsh, sds; +Cc: selinux

I've added the checks Steve suggested.  It doesn't appear to cause
any new regressions.  I didn't do a real parse of the contexts file
line--I just grab the last whitespace-delimited field.  This should
be sufficient since the line comes from the template file and the
added checks will reject a bogus context, should it occur.

 - todd

Index: libsemanage/src/genhomedircon.c
===================================================================
--- libsemanage/src/genhomedircon.c	(revision 2587)
+++ libsemanage/src/genhomedircon.c	(working copy)
@@ -1,5 +1,6 @@
-/* Author: Mark Goldman   <mgoldman@tresys.com>
- * 			Paul Rosenfeld	<prosenfeld@tresys.com>
+/* Author: Mark Goldman	  <mgoldman@tresys.com>
+ * 	   Paul Rosenfeld <prosenfeld@tresys.com>
+ * 	   Todd C. Miller <tmiller@tresys.com>
  *
  * Copyright (C) 2007 Tresys Technology, LLC
  *
@@ -23,6 +24,9 @@
 #include <semanage/seusers_policy.h>
 #include <semanage/users_policy.h>
 #include <semanage/user_record.h>
+#include <sepol/context.h>
+#include <sepol/context_record.h>
+#include <sepol/policydb/context.h>
 #include "semanage_store.h"
 #include "seuser_internal.h"
 #include "debug.h"
@@ -80,6 +84,7 @@
 	int usepasswd;
 	const char *homedir_template_path;
 	semanage_handle_t *h_semanage;
+	sepol_policydb_t *policydb;
 } genhomedircon_settings_t;
 
 typedef struct user_entry {
@@ -352,10 +357,47 @@
 	return retval;
 }
 
-static int write_home_dir_context(FILE * out, semanage_list_t * tpl,
-				  const char *user, const char *seuser,
-				  const char *home, const char *role_prefix)
+static const char * extract_context(Ustr *line)
 {
+	const char whitespace[] = " \t\n";
+	size_t off, len;
+
+	/* check for trailing whitespace */
+	off = ustr_spn_chrs_rev(line, 0, whitespace, strlen(whitespace));
+
+	/* find the length of the last field in line */
+	len = ustr_cspn_chrs_rev(line, off, whitespace, strlen(whitespace));
+
+	if (len == 0)
+		return NULL;
+	return ustr_cstr(line) + ustr_len(line) - (len + off);
+}
+
+static int check_line(genhomedircon_settings_t * s, Ustr *line)
+{
+	sepol_context_t *ctx_record = NULL;
+	const char *ctx_str;
+	int result;
+
+	ctx_str = extract_context(line);
+	if (!ctx_str)
+		return STATUS_ERR;
+
+	result = sepol_context_from_string(s->h_semanage->sepolh,
+					   ctx_str, &ctx_record);
+	if (result == STATUS_SUCCESS && ctx_record != NULL) {
+		result = sepol_context_check(s->h_semanage->sepolh,
+					     s->policydb, ctx_record);
+		sepol_context_free(ctx_record);
+	}
+	return result;
+}
+
+static int write_home_dir_context(genhomedircon_settings_t * s, FILE * out,
+				  semanage_list_t * tpl, const char *user,
+				  const char *seuser, const char *home,
+				  const char *role_prefix)
+{
 	replacement_pair_t repl[] = {
 		{.search_for = TEMPLATE_SEUSER,.replace_with = seuser},
 		{.search_for = TEMPLATE_HOME_DIR,.replace_with = home},
@@ -369,8 +411,12 @@
 
 	for (; tpl; tpl = tpl->next) {
 		line = replace_all(tpl->data, repl);
-		if (!line || !ustr_io_putfileline(&line, out))
+		if (!line)
 			goto fail;
+		if (check_line(s, line) == STATUS_SUCCESS) {
+			if (!ustr_io_putfileline(&line, out))
+				goto fail;
+		}
 		ustr_sc_free(&line);
 	}
 	return STATUS_SUCCESS;
@@ -380,8 +426,8 @@
 	return STATUS_ERR;
 }
 
-static int write_home_root_context(FILE * out, semanage_list_t * tpl,
-				   char *homedir)
+static int write_home_root_context(genhomedircon_settings_t * s, FILE * out,
+				   semanage_list_t * tpl, char *homedir)
 {
 	replacement_pair_t repl[] = {
 		{.search_for = TEMPLATE_HOME_ROOT,.replace_with = homedir},
@@ -391,8 +437,12 @@
 
 	for (; tpl; tpl = tpl->next) {
 		line = replace_all(tpl->data, repl);
-		if (!line || !ustr_io_putfileline(&line, out))
+		if (!line)
 			goto fail;
+		if (check_line(s, line) == STATUS_SUCCESS) {
+			if (!ustr_io_putfileline(&line, out))
+				goto fail;
+		}
 		ustr_sc_free(&line);
 	}
 	return STATUS_SUCCESS;
@@ -402,7 +452,8 @@
 	return STATUS_ERR;
 }
 
-static int write_user_context(FILE * out, semanage_list_t * tpl, char *user,
+static int write_user_context(genhomedircon_settings_t * s, FILE * out,
+			      semanage_list_t * tpl, char *user,
 			      char *seuser, char *role_prefix)
 {
 	replacement_pair_t repl[] = {
@@ -415,8 +466,12 @@
 
 	for (; tpl; tpl = tpl->next) {
 		line = replace_all(tpl->data, repl);
-		if (!line || !ustr_io_putfileline(&line, out))
+		if (!line)
 			goto fail;
+		if (check_line(s, line) == STATUS_SUCCESS) {
+			if (!ustr_io_putfileline(&line, out))
+				goto fail;
+		}
 		ustr_sc_free(&line);
 	}
 	return STATUS_SUCCESS;
@@ -602,7 +657,7 @@
 	return head;
 }
 
-static int write_gen_home_dir_context(FILE * out, genhomedircon_settings_t * s,
+static int write_gen_home_dir_context(genhomedircon_settings_t * s, FILE * out,
 				      semanage_list_t * user_context_tpl,
 				      semanage_list_t * homedir_context_tpl)
 {
@@ -615,13 +670,13 @@
 	}
 
 	for (; users; pop_user_entry(&users)) {
-		if (write_home_dir_context(out, homedir_context_tpl,
+		if (write_home_dir_context(s, out, homedir_context_tpl,
 					   users->name,
 					   users->sename, users->home,
 					   users->prefix)) {
 			return STATUS_ERR;
 		}
-		if (write_user_context(out, user_context_tpl, users->name,
+		if (write_user_context(s, out, user_context_tpl, users->name,
 				       users->sename, users->prefix)) {
 			return STATUS_ERR;
 		}
@@ -671,7 +726,7 @@
 			goto done;
 		}
 
-		if (write_home_dir_context(out,
+		if (write_home_dir_context(s, out,
 					   homedir_context_tpl, FALLBACK_USER,
 					   FALLBACK_USER, ustr_cstr(temp),
 					   FALLBACK_USER_PREFIX) !=
@@ -680,7 +735,7 @@
 			retval = STATUS_ERR;
 			goto done;
 		}
-		if (write_home_root_context(out,
+		if (write_home_root_context(s, out,
 					    homeroot_context_tpl,
 					    h->data) != STATUS_SUCCESS) {
 			ustr_sc_free(&temp);
@@ -690,13 +745,13 @@
 
 		ustr_sc_free(&temp);
 	}
-	if (write_user_context(out, user_context_tpl,
+	if (write_user_context(s, out, user_context_tpl,
 			       ".*", FALLBACK_USER,
 			       FALLBACK_USER_PREFIX) != STATUS_SUCCESS) {
 		retval = STATUS_ERR;
 		goto done;
 	}
-	if (write_gen_home_dir_context(out, s, user_context_tpl,
+	if (write_gen_home_dir_context(s, out, user_context_tpl,
 				       homedir_context_tpl) != STATUS_SUCCESS) {
 		retval = STATUS_ERR;
 	}
@@ -711,7 +766,9 @@
 	return retval;
 }
 
-int semanage_genhomedircon(semanage_handle_t * sh, int usepasswd)
+int semanage_genhomedircon(semanage_handle_t * sh,
+			   sepol_policydb_t * policydb,
+			   int usepasswd)
 {
 	genhomedircon_settings_t s;
 	FILE *out = NULL;
@@ -725,6 +782,7 @@
 
 	s.usepasswd = usepasswd;
 	s.h_semanage = sh;
+	s.policydb = policydb;
 
 	if (!(out = fopen(s.fcfilepath, "w"))) {
 		/* couldn't open output file */
Index: libsemanage/src/genhomedircon.h
===================================================================
--- libsemanage/src/genhomedircon.h	(revision 2587)
+++ libsemanage/src/genhomedircon.h	(working copy)
@@ -22,6 +22,7 @@
 
 #include "utilities.h"
 
-int semanage_genhomedircon(semanage_handle_t * sh, int usepasswd);
+int semanage_genhomedircon(semanage_handle_t * sh,
+			   sepol_policydb_t * policydb, int usepasswd);
 
 #endif
Index: libsemanage/src/direct_api.c
===================================================================
--- libsemanage/src/direct_api.c	(revision 2587)
+++ libsemanage/src/direct_api.c	(working copy)
@@ -702,7 +702,7 @@
 		goto cleanup;
 
 	if (sh->do_rebuild || modified) {
-		retval = semanage_install_sandbox(sh);
+		retval = semanage_install_sandbox(sh, out);
 	}
 
       cleanup:
Index: libsemanage/src/semanage_store.c
===================================================================
--- libsemanage/src/semanage_store.c	(revision 2587)
+++ libsemanage/src/semanage_store.c	(working copy)
@@ -1279,7 +1279,8 @@
  * should be placed within a mutex lock to ensure that it runs
  * atomically.	Returns commit number on success, -1 on error.
  */
-int semanage_install_sandbox(semanage_handle_t * sh)
+int semanage_install_sandbox(semanage_handle_t * sh,
+			     sepol_policydb_t * policydb)
 {
 	int retval = -1, commit_num = -1;
 
@@ -1294,7 +1295,7 @@
 	}
 	if (!sh->conf->disable_genhomedircon) {
 		if ((retval =
-		     semanage_genhomedircon(sh, TRUE)) != 0) {
+		     semanage_genhomedircon(sh, policydb, TRUE)) != 0) {
 			ERR(sh, "semanage_genhomedircon returned error code %d.",
 			    retval);
 			goto cleanup;
Index: libsemanage/src/semanage_store.h
===================================================================
--- libsemanage/src/semanage_store.h	(revision 2587)
+++ libsemanage/src/semanage_store.h	(working copy)
@@ -83,8 +83,6 @@
 int semanage_get_modules_names(semanage_handle_t * sh,
 			       char ***filenames, int *len);
 
-int semanage_install_sandbox(semanage_handle_t * sh);
-
 /* lock file routines */
 int semanage_get_trans_lock(semanage_handle_t * sh);
 int semanage_get_active_lock(semanage_handle_t * sh);
@@ -102,7 +100,8 @@
 int semanage_write_policydb(semanage_handle_t * sh,
 			    sepol_policydb_t * policydb);
 
-int semanage_install_sandbox(semanage_handle_t * sh);
+int semanage_install_sandbox(semanage_handle_t * sh,
+			     sepol_policydb_t * policydb);
 
 int semanage_verify_modules(semanage_handle_t * sh,
 			    char **module_filenames, int num_modules);

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: I am concerned about putting genhomedircon changes inlibsemanage into Fedora 8.
  2007-09-26 20:00 ` Stephen Smalley
@ 2007-09-26 20:20   ` Stephen Smalley
  2007-09-26 20:33     ` Daniel J Walsh
  2007-09-26 21:41     ` I am concerned about putting genhomedircon changesinlibsemanage " Todd Miller
  0 siblings, 2 replies; 7+ messages in thread
From: Stephen Smalley @ 2007-09-26 20:20 UTC (permalink / raw)
  To: Todd C. Miller; +Cc: dwalsh, selinux

On Wed, 2007-09-26 at 16:00 -0400, Stephen Smalley wrote:
> On Wed, 2007-09-26 at 16:01 -0400, Todd C. Miller wrote:
> > I've added the checks Steve suggested.  It doesn't appear to cause
> > any new regressions.  I didn't do a real parse of the contexts file
> > line--I just grab the last whitespace-delimited field.  This should
> > be sufficient since the line comes from the template file and the
> > added checks will reject a bogus context, should it occur.
> > 
> >  - todd
> > 
> > Index: libsemanage/src/genhomedircon.c
> > ===================================================================
> > --- libsemanage/src/genhomedircon.c	(revision 2587)
> > +++ libsemanage/src/genhomedircon.c	(working copy)
> > @@ -1,5 +1,6 @@
> > -/* Author: Mark Goldman   <mgoldman@tresys.com>
> > - * 			Paul Rosenfeld	<prosenfeld@tresys.com>
> > +/* Author: Mark Goldman	  <mgoldman@tresys.com>
> > + * 	   Paul Rosenfeld <prosenfeld@tresys.com>
> > + * 	   Todd C. Miller <tmiller@tresys.com>
> >   *
> >   * Copyright (C) 2007 Tresys Technology, LLC
> >   *
> > @@ -23,6 +24,9 @@
> >  #include <semanage/seusers_policy.h>
> >  #include <semanage/users_policy.h>
> >  #include <semanage/user_record.h>
> > +#include <sepol/context.h>
> > +#include <sepol/context_record.h>
> > +#include <sepol/policydb/context.h>
> 
> That last include shouldn't be necessary - the headers under
> sepol/policydb/ are private to the static lib.

Other tidbits:
- Running semodule -B with this patch applied yields error messages from
libsepol on the invalid contexts.  Quiet it via something like:
  sepol_msg_set_callback(s->h_semanage->sepolh, NULL, NULL);
  result = sepol_context_check(...);
  sepol_msg_set_callback(s->h_semanage->sepolh, semanage_msg_relay_handler, NULL);

- A diff of file_contexts.homedirs generated via libsemanage vs. the
old /usr/sbin/genhomedircon script shows differences on rawhide.  Not
sure who is right.  Diff below.

diff -bwru files.0/file_contexts.homedirs files/file_contexts.homedirs
--- files.0/file_contexts.homedirs	2007-09-25 19:49:39.000000000 -0400
+++ files/file_contexts.homedirs	2007-09-25 19:50:09.000000000 -0400
@@ -1,30 +1,53 @@
-
 #
 #
-# User-specific file contexts, generated via /usr/sbin/genhomedircon
-# use semanage command to manage system users in order to change the file_context
+# User-specific file contexts, generated via libsemanage
+# use semanage command to manage system users to change the file_context
 #
 #
 
 
 #
-# Home Context for user system_u
+# Home Context for user user_u
 #
 
-/home/[^/]*/.+	system_u:object_r:user_home_t:s0
-/home/[^/]*/.*/plugins/nprhapengine\.so.*	--	system_u:object_r:textrel_shlib_t:s0
-/home/[^/]*/.*/plugins/libflashplayer\.so.*	--	system_u:object_r:textrel_shlib_t:s0
-/home/[^/]*/((www)|(web)|(public_html))(/.+)?	system_u:object_r:httpd_user_content_t:s0
-/home/[^/]*/\.mozilla(/.*)?/plugins/libflashplayer\.so.*	--	system_u:object_r:textrel_shlib_t:s0
-/home/[^/]*/\.config/gtk-.*	system_u:object_r:user_gnome_home_t:s0
-/home/[^/]*	-d	system_u:object_r:user_home_dir_t:s0
+/home/[^/]*/.+	user_u:object_r:user_home_t:s0
+/home/[^/]*/.gnome2(/.*)?	user_u:object_r:user_gnome_home_t:s0
+/home/[^/]*/.*/plugins/nprhapengine\.so.*	--	user_u:object_r:textrel_shlib_t:s0
+/home/[^/]*/.*/plugins/libflashplayer\.so.*	--	user_u:object_r:textrel_shlib_t:s0
+/home/[^/]*/((www)|(web)|(public_html))(/.+)?	user_u:object_r:httpd_user_content_t:s0
+/home/[^/]*/\.ssh(/.*)?	user_u:object_r:user_home_ssh_t:s0
+/home/[^/]*/\.uml(/.*)?	user_u:object_r:user_uml_rw_t:s0
+/home/[^/]*/\.java(/.*)?	user_u:object_r:user_mozilla_home_t:s0
+/home/[^/]*/\.xauth.*	--	user_u:object_r:user_xauth_home_t:s0
+/home/[^/]*/\.fonts(/.*)?	user_u:object_r:user_fonts_t:s0
+/home/[^/]*/\.pyzor(/.*)?	user_u:object_r:user_pyzor_home_t:s0
+/home/[^/]*/\.razor(/.*)?	user_u:object_r:user_razor_home_t:s0
+/home/[^/]*/vmware(/.*)?	user_u:object_r:user_vmware_file_t:s0
+/home/[^/]*/\.galeon(/.*)?	user_u:object_r:user_mozilla_home_t:s0
+/home/[^/]*/\.vmware(/.*)?	user_u:object_r:user_vmware_file_t:s0
+/home/[^/]*/\.vmware[^/]*/.*\.cfg	--	user_u:object_r:user_vmware_conf_t:s0
+/home/[^/]*/\.mozilla(/.*)?	user_u:object_r:user_mozilla_home_t:s0
+/home/[^/]*/\.phoenix(/.*)?	user_u:object_r:user_mozilla_home_t:s0
+/home/[^/]*/\.mplayer(/.*)?	user_u:object_r:user_mplayer_home_t:s0
+/home/[^/]*/\.mozilla(/.*)?/plugins/libflashplayer\.so.*	--	user_u:object_r:textrel_shlib_t:s0
+/home/[^/]*/\.ethereal(/.*)?	user_u:object_r:user_ethereal_home_t:s0
+/home/[^/]*/\.netscape(/.*)?	user_u:object_r:user_mozilla_home_t:s0
+/home/[^/]*/\.Xauthority.*	--	user_u:object_r:user_xauth_home_t:s0
+/home/[^/]*/\.fonts/auto(/.*)?	user_u:object_r:user_fonts_cache_t:s0
+/home/[^/]*/\.config/gtk-.*	user_u:object_r:user_gnome_home_t:s0
+/home/[^/]*/\.fonts\.cache-.*	--	user_u:object_r:user_fonts_cache_t:s0
+/home/[^/]*/\.ICEauthority.*	--	user_u:object_r:user_iceauth_home_t:s0
+/home/[^/]*/\.spamassassin(/.*)?	user_u:object_r:user_spamassassin_home_t:s0
+/home/[^/]*	-d	user_u:object_r:user_home_dir_t:s0
+/home/[^/]*	-l	user_u:object_r:user_home_dir_t:s0
+/home/[^/]*/\.ircmotd	--	user_u:object_r:user_irc_home_t:s0
+/home/[^/]*/\.screenrc	--	user_u:object_r:user_screen_ro_home_t:s0
+/home/[^/]*/\.fonts\.conf	--	user_u:object_r:user_fonts_config_t:s0
 /home/lost\+found/.*	<<none>>
 /home	-d	system_u:object_r:home_root_t:s0
 /home/\.journal	<<none>>
 /home/lost\+found	-d	system_u:object_r:lost_found_t:s0
-/tmp/\.exchange-.*(/.*)?	system_u:object_r:user_evolution_exchange_tmp_t:s0
-/tmp/gconfd-.*	-d	system_u:object_r:user_tmp_t:s0
-
+/tmp/gconfd-.*	-d	user_u:object_r:user_tmp_t:s0
 
 
 #
@@ -32,12 +55,36 @@
 #
 
 /root/.+	root:object_r:sysadm_home_t:s0
+/root/.gnome2(/.*)?	root:object_r:sysadm_gnome_home_t:s0
 /root/.*/plugins/nprhapengine\.so.*	--	root:object_r:textrel_shlib_t:s0
 /root/.*/plugins/libflashplayer\.so.*	--	root:object_r:textrel_shlib_t:s0
 /root/((www)|(web)|(public_html))(/.+)?	root:object_r:httpd_sysadm_content_t:s0
+/root/\.ssh(/.*)?	root:object_r:sysadm_home_ssh_t:s0
+/root/\.uml(/.*)?	root:object_r:sysadm_uml_rw_t:s0
+/root/\.java(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
+/root/\.xauth.*	--	root:object_r:sysadm_xauth_home_t:s0
+/root/\.fonts(/.*)?	root:object_r:sysadm_fonts_t:s0
+/root/\.pyzor(/.*)?	root:object_r:sysadm_pyzor_home_t:s0
+/root/\.razor(/.*)?	root:object_r:sysadm_razor_home_t:s0
+/root/vmware(/.*)?	root:object_r:sysadm_vmware_file_t:s0
+/root/\.galeon(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
+/root/\.vmware(/.*)?	root:object_r:sysadm_vmware_file_t:s0
+/root/\.vmware[^/]*/.*\.cfg	--	root:object_r:sysadm_vmware_conf_t:s0
+/root/\.mozilla(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
+/root/\.phoenix(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
+/root/\.mplayer(/.*)?	root:object_r:sysadm_mplayer_home_t:s0
 /root/\.mozilla(/.*)?/plugins/libflashplayer\.so.*	--	root:object_r:textrel_shlib_t:s0
+/root/\.ethereal(/.*)?	root:object_r:sysadm_ethereal_home_t:s0
+/root/\.netscape(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
+/root/\.Xauthority.*	--	root:object_r:sysadm_xauth_home_t:s0
+/root/\.fonts/auto(/.*)?	root:object_r:sysadm_fonts_cache_t:s0
 /root/\.config/gtk-.*	root:object_r:sysadm_gnome_home_t:s0
+/root/\.fonts\.cache-.*	--	root:object_r:sysadm_fonts_cache_t:s0
+/root/\.ICEauthority.*	--	root:object_r:sysadm_iceauth_home_t:s0
+/root/\.spamassassin(/.*)?	root:object_r:sysadm_spamassassin_home_t:s0
 /root	-d	root:object_r:sysadm_home_dir_t:s0
-/tmp/\.exchange-root(/.*)?	root:object_r:sysadm_evolution_exchange_tmp_t:s0
+/root	-l	root:object_r:sysadm_home_dir_t:s0
+/root/\.ircmotd	--	root:object_r:sysadm_irc_home_t:s0
+/root/\.screenrc	--	root:object_r:sysadm_screen_ro_home_t:s0
+/root/\.fonts\.conf	--	root:object_r:sysadm_fonts_config_t:s0
 /tmp/gconfd-root	-d	root:object_r:sysadm_tmp_t:s0
-

-- 
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@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: I am concerned about putting genhomedircon changes inlibsemanage into Fedora 8.
  2007-09-26 20:20   ` Stephen Smalley
@ 2007-09-26 20:33     ` Daniel J Walsh
  2007-09-26 21:41     ` I am concerned about putting genhomedircon changesinlibsemanage " Todd Miller
  1 sibling, 0 replies; 7+ messages in thread
From: Daniel J Walsh @ 2007-09-26 20:33 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: Todd C. Miller, selinux

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Stephen Smalley wrote:
> On Wed, 2007-09-26 at 16:00 -0400, Stephen Smalley wrote:
>> On Wed, 2007-09-26 at 16:01 -0400, Todd C. Miller wrote:
>>> I've added the checks Steve suggested.  It doesn't appear to cause
>>> any new regressions.  I didn't do a real parse of the contexts file
>>> line--I just grab the last whitespace-delimited field.  This should
>>> be sufficient since the line comes from the template file and the
>>> added checks will reject a bogus context, should it occur.
>>>
>>>  - todd
>>>
>>> Index: libsemanage/src/genhomedircon.c
>>> ===================================================================
>>> --- libsemanage/src/genhomedircon.c	(revision 2587)
>>> +++ libsemanage/src/genhomedircon.c	(working copy)
>>> @@ -1,5 +1,6 @@
>>> -/* Author: Mark Goldman   <mgoldman@tresys.com>
>>> - * 			Paul Rosenfeld	<prosenfeld@tresys.com>
>>> +/* Author: Mark Goldman	  <mgoldman@tresys.com>
>>> + * 	   Paul Rosenfeld <prosenfeld@tresys.com>
>>> + * 	   Todd C. Miller <tmiller@tresys.com>
>>>   *
>>>   * Copyright (C) 2007 Tresys Technology, LLC
>>>   *
>>> @@ -23,6 +24,9 @@
>>>  #include <semanage/seusers_policy.h>
>>>  #include <semanage/users_policy.h>
>>>  #include <semanage/user_record.h>
>>> +#include <sepol/context.h>
>>> +#include <sepol/context_record.h>
>>> +#include <sepol/policydb/context.h>
>> That last include shouldn't be necessary - the headers under
>> sepol/policydb/ are private to the static lib.
> 
> Other tidbits:
> - Running semodule -B with this patch applied yields error messages from
> libsepol on the invalid contexts.  Quiet it via something like:
>   sepol_msg_set_callback(s->h_semanage->sepolh, NULL, NULL);
>   result = sepol_context_check(...);
>   sepol_msg_set_callback(s->h_semanage->sepolh, semanage_msg_relay_handler, NULL);
> 
> - A diff of file_contexts.homedirs generated via libsemanage vs. the
> old /usr/sbin/genhomedircon script shows differences on rawhide.  Not
> sure who is right.  Diff below.
> 
> diff -bwru files.0/file_contexts.homedirs files/file_contexts.homedirs
> --- files.0/file_contexts.homedirs	2007-09-25 19:49:39.000000000 -0400
> +++ files/file_contexts.homedirs	2007-09-25 19:50:09.000000000 -0400
> @@ -1,30 +1,53 @@
> -
>  #
>  #
> -# User-specific file contexts, generated via /usr/sbin/genhomedircon
> -# use semanage command to manage system users in order to change the file_context
> +# User-specific file contexts, generated via libsemanage
> +# use semanage command to manage system users to change the file_context
>  #
>  #
>  
>  
>  #
> -# Home Context for user system_u
> +# Home Context for user user_u
>  #
>  
> -/home/[^/]*/.+	system_u:object_r:user_home_t:s0
> -/home/[^/]*/.*/plugins/nprhapengine\.so.*	--	system_u:object_r:textrel_shlib_t:s0
> -/home/[^/]*/.*/plugins/libflashplayer\.so.*	--	system_u:object_r:textrel_shlib_t:s0
> -/home/[^/]*/((www)|(web)|(public_html))(/.+)?	system_u:object_r:httpd_user_content_t:s0
> -/home/[^/]*/\.mozilla(/.*)?/plugins/libflashplayer\.so.*	--	system_u:object_r:textrel_shlib_t:s0
> -/home/[^/]*/\.config/gtk-.*	system_u:object_r:user_gnome_home_t:s0
> -/home/[^/]*	-d	system_u:object_r:user_home_dir_t:s0
> +/home/[^/]*/.+	user_u:object_r:user_home_t:s0
> +/home/[^/]*/.gnome2(/.*)?	user_u:object_r:user_gnome_home_t:s0
> +/home/[^/]*/.*/plugins/nprhapengine\.so.*	--	user_u:object_r:textrel_shlib_t:s0
> +/home/[^/]*/.*/plugins/libflashplayer\.so.*	--	user_u:object_r:textrel_shlib_t:s0
> +/home/[^/]*/((www)|(web)|(public_html))(/.+)?	user_u:object_r:httpd_user_content_t:s0
> +/home/[^/]*/\.ssh(/.*)?	user_u:object_r:user_home_ssh_t:s0
> +/home/[^/]*/\.uml(/.*)?	user_u:object_r:user_uml_rw_t:s0
> +/home/[^/]*/\.java(/.*)?	user_u:object_r:user_mozilla_home_t:s0
> +/home/[^/]*/\.xauth.*	--	user_u:object_r:user_xauth_home_t:s0
> +/home/[^/]*/\.fonts(/.*)?	user_u:object_r:user_fonts_t:s0
> +/home/[^/]*/\.pyzor(/.*)?	user_u:object_r:user_pyzor_home_t:s0
> +/home/[^/]*/\.razor(/.*)?	user_u:object_r:user_razor_home_t:s0
> +/home/[^/]*/vmware(/.*)?	user_u:object_r:user_vmware_file_t:s0
> +/home/[^/]*/\.galeon(/.*)?	user_u:object_r:user_mozilla_home_t:s0
> +/home/[^/]*/\.vmware(/.*)?	user_u:object_r:user_vmware_file_t:s0
> +/home/[^/]*/\.vmware[^/]*/.*\.cfg	--	user_u:object_r:user_vmware_conf_t:s0
> +/home/[^/]*/\.mozilla(/.*)?	user_u:object_r:user_mozilla_home_t:s0
> +/home/[^/]*/\.phoenix(/.*)?	user_u:object_r:user_mozilla_home_t:s0
> +/home/[^/]*/\.mplayer(/.*)?	user_u:object_r:user_mplayer_home_t:s0
> +/home/[^/]*/\.mozilla(/.*)?/plugins/libflashplayer\.so.*	--	user_u:object_r:textrel_shlib_t:s0
> +/home/[^/]*/\.ethereal(/.*)?	user_u:object_r:user_ethereal_home_t:s0
> +/home/[^/]*/\.netscape(/.*)?	user_u:object_r:user_mozilla_home_t:s0
> +/home/[^/]*/\.Xauthority.*	--	user_u:object_r:user_xauth_home_t:s0
> +/home/[^/]*/\.fonts/auto(/.*)?	user_u:object_r:user_fonts_cache_t:s0
> +/home/[^/]*/\.config/gtk-.*	user_u:object_r:user_gnome_home_t:s0
> +/home/[^/]*/\.fonts\.cache-.*	--	user_u:object_r:user_fonts_cache_t:s0
> +/home/[^/]*/\.ICEauthority.*	--	user_u:object_r:user_iceauth_home_t:s0
> +/home/[^/]*/\.spamassassin(/.*)?	user_u:object_r:user_spamassassin_home_t:s0
> +/home/[^/]*	-d	user_u:object_r:user_home_dir_t:s0
> +/home/[^/]*	-l	user_u:object_r:user_home_dir_t:s0
> +/home/[^/]*/\.ircmotd	--	user_u:object_r:user_irc_home_t:s0
> +/home/[^/]*/\.screenrc	--	user_u:object_r:user_screen_ro_home_t:s0
> +/home/[^/]*/\.fonts\.conf	--	user_u:object_r:user_fonts_config_t:s0
>  /home/lost\+found/.*	<<none>>
>  /home	-d	system_u:object_r:home_root_t:s0
>  /home/\.journal	<<none>>
>  /home/lost\+found	-d	system_u:object_r:lost_found_t:s0
> -/tmp/\.exchange-.*(/.*)?	system_u:object_r:user_evolution_exchange_tmp_t:s0
> -/tmp/gconfd-.*	-d	system_u:object_r:user_tmp_t:s0
> -
> +/tmp/gconfd-.*	-d	user_u:object_r:user_tmp_t:s0
>  
>  
>  #
> @@ -32,12 +55,36 @@
>  #
>  
>  /root/.+	root:object_r:sysadm_home_t:s0
> +/root/.gnome2(/.*)?	root:object_r:sysadm_gnome_home_t:s0
>  /root/.*/plugins/nprhapengine\.so.*	--	root:object_r:textrel_shlib_t:s0
>  /root/.*/plugins/libflashplayer\.so.*	--	root:object_r:textrel_shlib_t:s0
>  /root/((www)|(web)|(public_html))(/.+)?	root:object_r:httpd_sysadm_content_t:s0
> +/root/\.ssh(/.*)?	root:object_r:sysadm_home_ssh_t:s0
> +/root/\.uml(/.*)?	root:object_r:sysadm_uml_rw_t:s0
> +/root/\.java(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
> +/root/\.xauth.*	--	root:object_r:sysadm_xauth_home_t:s0
> +/root/\.fonts(/.*)?	root:object_r:sysadm_fonts_t:s0
> +/root/\.pyzor(/.*)?	root:object_r:sysadm_pyzor_home_t:s0
> +/root/\.razor(/.*)?	root:object_r:sysadm_razor_home_t:s0
> +/root/vmware(/.*)?	root:object_r:sysadm_vmware_file_t:s0
> +/root/\.galeon(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
> +/root/\.vmware(/.*)?	root:object_r:sysadm_vmware_file_t:s0
> +/root/\.vmware[^/]*/.*\.cfg	--	root:object_r:sysadm_vmware_conf_t:s0
> +/root/\.mozilla(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
> +/root/\.phoenix(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
> +/root/\.mplayer(/.*)?	root:object_r:sysadm_mplayer_home_t:s0
>  /root/\.mozilla(/.*)?/plugins/libflashplayer\.so.*	--	root:object_r:textrel_shlib_t:s0
> +/root/\.ethereal(/.*)?	root:object_r:sysadm_ethereal_home_t:s0
> +/root/\.netscape(/.*)?	root:object_r:sysadm_mozilla_home_t:s0
> +/root/\.Xauthority.*	--	root:object_r:sysadm_xauth_home_t:s0
> +/root/\.fonts/auto(/.*)?	root:object_r:sysadm_fonts_cache_t:s0
>  /root/\.config/gtk-.*	root:object_r:sysadm_gnome_home_t:s0
> +/root/\.fonts\.cache-.*	--	root:object_r:sysadm_fonts_cache_t:s0
> +/root/\.ICEauthority.*	--	root:object_r:sysadm_iceauth_home_t:s0
> +/root/\.spamassassin(/.*)?	root:object_r:sysadm_spamassassin_home_t:s0
>  /root	-d	root:object_r:sysadm_home_dir_t:s0
> -/tmp/\.exchange-root(/.*)?	root:object_r:sysadm_evolution_exchange_tmp_t:s0
> +/root	-l	root:object_r:sysadm_home_dir_t:s0
> +/root/\.ircmotd	--	root:object_r:sysadm_irc_home_t:s0
> +/root/\.screenrc	--	root:object_r:sysadm_screen_ro_home_t:s0
> +/root/\.fonts\.conf	--	root:object_r:sysadm_fonts_config_t:s0
>  /tmp/gconfd-root	-d	root:object_r:sysadm_tmp_t:s0
> -
> 
Add the xguest_u to really see it.

useradd -Z xguest_u xguest

Looks good but the errors have got to go.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFG+sIXrlYvE4MpobMRAjTYAKCI7hKnpV5iBeGYBrqcroGLfBLSiQCghqG2
aIUhiyuxzrBrRRwZwn4IaL8=
=UPgo
-----END PGP SIGNATURE-----

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: I am concerned about putting genhomedircon changesinlibsemanage into Fedora 8.
  2007-09-26 20:20   ` Stephen Smalley
  2007-09-26 20:33     ` Daniel J Walsh
@ 2007-09-26 21:41     ` Todd Miller
  2007-09-27 11:19       ` Stephen Smalley
  1 sibling, 1 reply; 7+ messages in thread
From: Todd Miller @ 2007-09-26 21:41 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: dwalsh, selinux

Stephen Smalley wrote:
> - A diff of file_contexts.homedirs generated via libsemanage vs. the
> old /usr/sbin/genhomedircon script shows differences on rawhide.  Not
> sure who is right.  Diff below.

It looks like the new genhomedircon is being overzealous in its
replacemen
of system_u.

 - todd


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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: I am concerned about putting genhomedircon changesinlibsemanage into Fedora 8.
  2007-09-26 21:41     ` I am concerned about putting genhomedircon changesinlibsemanage " Todd Miller
@ 2007-09-27 11:19       ` Stephen Smalley
  2007-09-27 18:01         ` Daniel J Walsh
  0 siblings, 1 reply; 7+ messages in thread
From: Stephen Smalley @ 2007-09-27 11:19 UTC (permalink / raw)
  To: Todd Miller; +Cc: dwalsh, selinux

On Wed, 2007-09-26 at 17:41 -0400, Todd Miller wrote:
> Stephen Smalley wrote:
> > - A diff of file_contexts.homedirs generated via libsemanage vs. the
> > old /usr/sbin/genhomedircon script shows differences on rawhide.  Not
> > sure who is right.  Diff below.
> 
> It looks like the new genhomedircon is being overzealous in its
> replacemen
> of system_u.

The python script sets the default user from the __default_ entry in
seusers and the default prefix from the default user's prefix.  I don't
see corresponding support in the C implementation; it seems to use a
fixed value of user_u (which I think the python script did too at one
point, but later changed to check __default__).  In rawhide, __default__
is set to system_u rather than user_u for some reason.

-- 
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@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: I am concerned about putting genhomedircon changesinlibsemanage into Fedora 8.
  2007-09-27 11:19       ` Stephen Smalley
@ 2007-09-27 18:01         ` Daniel J Walsh
  0 siblings, 0 replies; 7+ messages in thread
From: Daniel J Walsh @ 2007-09-27 18:01 UTC (permalink / raw)
  To: Stephen Smalley; +Cc: Todd Miller, selinux

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Stephen Smalley wrote:
> On Wed, 2007-09-26 at 17:41 -0400, Todd Miller wrote:
>> Stephen Smalley wrote:
>>> - A diff of file_contexts.homedirs generated via libsemanage vs. the
>>> old /usr/sbin/genhomedircon script shows differences on rawhide.  Not
>>> sure who is right.  Diff below.
>> It looks like the new genhomedircon is being overzealous in its
>> replacemen
>> of system_u.
> 
> The python script sets the default user from the __default_ entry in
> seusers and the default prefix from the default user's prefix.  I don't
> see corresponding support in the C implementation; it seems to use a
> fixed value of user_u (which I think the python script did too at one
> point, but later changed to check __default__).  In rawhide, __default__
> is set to system_u rather than user_u for some reason.
> 
I fixed this last night.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFG++/vrlYvE4MpobMRAh/VAKDNQ5TDb3C80W0pOcQSbNwfH2CZqQCgiJk4
V1aCXdmVETy13gbH5/D/Q8k=
=xPPk
-----END PGP SIGNATURE-----

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-09-27 18:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-26 20:01 I am concerned about putting genhomedircon changes inlibsemanage into Fedora 8 Todd C. Miller
2007-09-26 20:00 ` Stephen Smalley
2007-09-26 20:20   ` Stephen Smalley
2007-09-26 20:33     ` Daniel J Walsh
2007-09-26 21:41     ` I am concerned about putting genhomedircon changesinlibsemanage " Todd Miller
2007-09-27 11:19       ` Stephen Smalley
2007-09-27 18:01         ` Daniel J Walsh

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.