* Sat Jan 14 2006 Dan Walsh <dwalsh@redhat.com> 1.29.7-3
- Add check for root for semanage, genhomedircon
This commit is contained in:
		
							parent
							
								
									a482441cd0
								
							
						
					
					
						commit
						b53e6f7552
					
				| @ -1,6 +1,6 @@ | |||||||
| diff --exclude-from=exclude -N -u -r nsapolicycoreutils/scripts/genhomedircon policycoreutils-1.29.7/scripts/genhomedircon
 | diff --exclude-from=exclude -N -u -r nsapolicycoreutils/scripts/genhomedircon policycoreutils-1.29.7/scripts/genhomedircon
 | ||||||
| --- nsapolicycoreutils/scripts/genhomedircon	2006-01-13 09:47:40.000000000 -0500
 | --- nsapolicycoreutils/scripts/genhomedircon	2006-01-13 09:47:40.000000000 -0500
 | ||||||
| +++ policycoreutils-1.29.7/scripts/genhomedircon	2006-01-14 08:39:02.000000000 -0500
 | +++ policycoreutils-1.29.7/scripts/genhomedircon	2006-01-15 08:42:38.000000000 -0500
 | ||||||
| @@ -327,6 +327,9 @@
 | @@ -327,6 +327,9 @@
 | ||||||
|  			sys.stderr.write("%s: %s\n" % ( sys.argv[0], error )) |  			sys.stderr.write("%s: %s\n" % ( sys.argv[0], error )) | ||||||
|   |   | ||||||
| @ -13,8 +13,8 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/scripts/genhomedircon po | |||||||
|  # This script will generate home dir file context |  # This script will generate home dir file context | ||||||
| diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/semanage policycoreutils-1.29.7/semanage/semanage
 | diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/semanage policycoreutils-1.29.7/semanage/semanage
 | ||||||
| --- nsapolicycoreutils/semanage/semanage	2006-01-13 09:47:40.000000000 -0500
 | --- nsapolicycoreutils/semanage/semanage	2006-01-13 09:47:40.000000000 -0500
 | ||||||
| +++ policycoreutils-1.29.7/semanage/semanage	2006-01-14 08:38:35.000000000 -0500
 | +++ policycoreutils-1.29.7/semanage/semanage	2006-01-15 09:04:05.000000000 -0500
 | ||||||
| @@ -20,10 +20,13 @@
 | @@ -20,23 +20,27 @@
 | ||||||
|  #                                        02111-1307  USA |  #                                        02111-1307  USA | ||||||
|  # |  # | ||||||
|  #   |  #   | ||||||
| @ -29,7 +29,83 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/semanage policy | |||||||
|   |   | ||||||
|  	def usage(message = ""): |  	def usage(message = ""): | ||||||
|  		print '\ |  		print '\ | ||||||
| @@ -210,8 +214,13 @@
 | -semanage user [-admsRrh] SELINUX_USER\n\
 | ||||||
|  | -semanage login [-admsrh] LOGIN_NAME\n\
 | ||||||
|  | -semanage port [-admth] PORT | PORTRANGE\n\
 | ||||||
|  | -semanage interface [-admth] INTERFACE\n\
 | ||||||
|  | -semanage fcontext [-admhfst] INTERFACE\n\
 | ||||||
|  | +semanage user [-admLRr] SELINUX_USER\n\
 | ||||||
|  | +semanage login [-admsr] LOGIN_NAME\n\
 | ||||||
|  | +semanage port [-admtpr] PORT | PORTRANGE\n\
 | ||||||
|  | +semanage interface [-admtr] INTERFACE\n\
 | ||||||
|  | +semanage fcontext [-admhfrst] INTERFACE\n\
 | ||||||
|  |  	-a, --add        Add a OBJECT record NAME\n\ | ||||||
|  |  	-d, --delete     Delete a OBJECT record NAME\n\ | ||||||
|  |  	-f, --ftype      File Type of OBJECT \n\ | ||||||
|  |  	-h, --help       display this message\n\ | ||||||
|  |  	-l, --list       List the OBJECTS\n\ | ||||||
|  | +	-L, --level      Default SELinux Level\n\
 | ||||||
|  |  	-n, --noheading  Do not print heading when listing OBJECTS\n\ | ||||||
|  |  	-m, --modify     Modify a OBJECT record NAME\n\ | ||||||
|  |  	-r, --range      MLS/MCS Security Range\n\ | ||||||
|  | @@ -84,7 +88,7 @@
 | ||||||
|  |  			 | ||||||
|  |  		args = sys.argv[2:] | ||||||
|  |  		gopts, cmds = getopt.getopt(args, | ||||||
|  | -					    'adf:lhmnp:P:s:R:r:t:v',
 | ||||||
|  | +					    'adf:lhmnp:P:s:R:L:r:t:v',
 | ||||||
|  |  					    ['add', | ||||||
|  |  					     'delete', | ||||||
|  |  					     'ftype=', | ||||||
|  | @@ -96,6 +100,7 @@
 | ||||||
|  |  					     'proto=', | ||||||
|  |  					     'seuser=', | ||||||
|  |  					     'range=', | ||||||
|  | +					     'level=',
 | ||||||
|  |  					     'roles=', | ||||||
|  |  					     'type=', | ||||||
|  |  					     'verbose' | ||||||
|  | @@ -106,7 +111,7 @@
 | ||||||
|  |  					usage() | ||||||
|  |  				add = 1 | ||||||
|  |  				 | ||||||
|  | -			if o == "-d"  or o == "--delese":
 | ||||||
|  | +			if o == "-d"  or o == "--delete":
 | ||||||
|  |  				if modify or add: | ||||||
|  |  					usage() | ||||||
|  |  				delete = 1 | ||||||
|  | @@ -126,21 +131,24 @@
 | ||||||
|  |  			if o == "-r" or o == '--range': | ||||||
|  |  				serange = a | ||||||
|  |   | ||||||
|  | +			if o == "-l" or o == "--list":
 | ||||||
|  | +				list = 1
 | ||||||
|  | +
 | ||||||
|  | +			if o == "-L" or o == '--level':
 | ||||||
|  | +				selevel = a
 | ||||||
|  | +
 | ||||||
|  |  			if o == "-P" or o == '--proto': | ||||||
|  |  				proto = a | ||||||
|  |   | ||||||
|  |  			if o == "-R" or o == '--roles': | ||||||
|  |  				roles = a | ||||||
|  |   | ||||||
|  | -			if o == "-t" or o == "--type":
 | ||||||
|  | -				setype = a
 | ||||||
|  | -
 | ||||||
|  | -			if o == "-l" or o == "--list":
 | ||||||
|  | -				list = 1
 | ||||||
|  | -
 | ||||||
|  |  			if o == "-s" or o == "--seuser": | ||||||
|  |  				seuser = a | ||||||
|  |   | ||||||
|  | +			if o == "-t" or o == "--type":
 | ||||||
|  | +				setype = a
 | ||||||
|  | +
 | ||||||
|  |  			if o == "-v" or o == "--verbose": | ||||||
|  |  				verbose = 1 | ||||||
|  |   | ||||||
|  | @@ -210,8 +218,13 @@
 | ||||||
|  		if delete: |  		if delete: | ||||||
|  			if object == "port": |  			if object == "port": | ||||||
|  				OBJECT.delete(target, proto) |  				OBJECT.delete(target, proto) | ||||||
| @ -43,10 +119,165 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/semanage policy | |||||||
|  			sys.exit(0); |  			sys.exit(0); | ||||||
|  		usage() |  		usage() | ||||||
|  			 |  			 | ||||||
|  | diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/semanage.8 policycoreutils-1.29.7/semanage/semanage.8
 | ||||||
|  | --- nsapolicycoreutils/semanage/semanage.8	2005-11-29 10:55:01.000000000 -0500
 | ||||||
|  | +++ policycoreutils-1.29.7/semanage/semanage.8	2006-01-15 09:04:56.000000000 -0500
 | ||||||
|  | @@ -3,55 +3,71 @@
 | ||||||
|  |  semanage \- SELinux Policy Management tool | ||||||
|  |   | ||||||
|  |  .SH "SYNOPSIS" | ||||||
|  | -.B semanage OBJECTTYPE [\-admsrh] OBJECT
 | ||||||
|  | -.B semanage login [\-admsrh] login_name
 | ||||||
|  | +.B semanage {login|user|port|interface|fcontext} \-l
 | ||||||
|  |  .br | ||||||
|  | -.B semanage seuser [\-admsrh] selinux_name
 | ||||||
|  | +.B semanage login \-{a|d|m} [\-sr] login_name
 | ||||||
|  |  .br | ||||||
|  | -.B semanage port [\-admth] port_number
 | ||||||
|  | +.B semanage user \-{a|d|m} [\-LrR] selinux_name
 | ||||||
|  | +.br
 | ||||||
|  | +.B semanage port \-{a|d|m} [\-tp] port_number
 | ||||||
|  | +.br
 | ||||||
|  | +.B semanage interface \-{a|d|m} [\-tr] interface_spec
 | ||||||
|  | +.br
 | ||||||
|  | +.B semanage fcontext \-{a|d|m} [\-frst] file_spec
 | ||||||
|  |  .P | ||||||
|  | -This tool is used to manage configuration of the SELinux policy
 | ||||||
|  | +
 | ||||||
|  | +This tool is used to configure SELinux policy
 | ||||||
|  |   | ||||||
|  |  .SH "DESCRIPTION" | ||||||
|  |  This manual page describes the | ||||||
|  |  .BR semanage | ||||||
|  |  program. | ||||||
|  |  .br | ||||||
|  | -This tool is used to manage configuration of SELinux Policy.  You can configure SELinux User Mappings, SELinux Port Mappings, SELinux Users.
 | ||||||
|  | -
 | ||||||
|  | +This tool is used to configure SELinux Policy.  You can configure SELinux User Mappings, SELinux Port Mappings, SELinux Users. File Context and Network Interfaces.
 | ||||||
|  |   | ||||||
|  |  .SH "OPTIONS" | ||||||
|  | -.TP 
 | ||||||
|  | -                \-a, \-\-add        
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-a, \-\-add        
 | ||||||
|  |  Add a OBJECT record NAME | ||||||
|  | -.B                \-d, \-\-delete     
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-d, \-\-delete     
 | ||||||
|  |  Delete a OBJECT record NAME | ||||||
|  | -.B                \-h, \-\-help       
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-h, \-\-help       
 | ||||||
|  |  display this message | ||||||
|  | -.B                \-l, \-\-list       
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-f, \-\-ftype
 | ||||||
|  | +File Type.   This is used with fcontext.
 | ||||||
|  | +Requires a file type as shown in the mode field by ls, e.g. use -d to match only directories or -- to match only regular files.
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-l, \-\-list       
 | ||||||
|  |  List the OBJECTS | ||||||
|  | -.B                \-m, \-\-modify     
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-L, \-\-level
 | ||||||
|  | +Default SELinux Level for SELinux use. (s0)
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-m, \-\-modify     
 | ||||||
|  |  Modify a OBJECT record NAME | ||||||
|  | -.B                \-r, \-\-range      
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-p, \-\-proto
 | ||||||
|  | +Protocol for the specified port (tcp|udp).
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-R, \-\-role
 | ||||||
|  | +SELinux Roles (Separate by spaces)
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-r, \-\-range      
 | ||||||
|  |  MLS/MCS Security Range | ||||||
|  | -.B                \-s, \-\-seuser     
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-s, \-\-seuser     
 | ||||||
|  |  SELinux user name | ||||||
|  | -.B                \-t, \-\-type       
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-t, \-\-type       
 | ||||||
|  |  SELinux Type for the object | ||||||
|  | -.B                \-v, \-\-verbose    
 | ||||||
|  | -.P
 | ||||||
|  | +.TP
 | ||||||
|  | +.I                \-v, \-\-verbose    
 | ||||||
|  |  verbose output | ||||||
|  |   | ||||||
|  |  .SH "AUTHOR" | ||||||
|  | -This man page was written by Daniel Walsh <dwalsh@redhat.com>.
 | ||||||
|  | -
 | ||||||
|  | -
 | ||||||
|  | +This man page was written by Daniel Walsh <dwalsh@redhat.com> and
 | ||||||
|  | +Russell Coker <rcoker@redhat.com>.
 | ||||||
|  |   | ||||||
| diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-1.29.7/semanage/seobject.py
 | diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-1.29.7/semanage/seobject.py
 | ||||||
| --- nsapolicycoreutils/semanage/seobject.py	2006-01-13 08:39:11.000000000 -0500
 | --- nsapolicycoreutils/semanage/seobject.py	2006-01-13 08:39:11.000000000 -0500
 | ||||||
| +++ policycoreutils-1.29.7/semanage/seobject.py	2006-01-14 01:50:09.000000000 -0500
 | +++ policycoreutils-1.29.7/semanage/seobject.py	2006-01-15 09:50:28.000000000 -0500
 | ||||||
| @@ -46,7 +46,7 @@
 | @@ -21,8 +21,39 @@
 | ||||||
|  |  # | ||||||
|  |  #   | ||||||
|  |   | ||||||
|  | -import pwd, string
 | ||||||
|  | +import pwd, string, selinux
 | ||||||
|  |  from semanage import *; | ||||||
|  | +
 | ||||||
|  | +def translate(raw, prepend=1):
 | ||||||
|  | +	if prepend == 1:
 | ||||||
|  | +		context="a:b:c:%s" % raw
 | ||||||
|  | +	else:
 | ||||||
|  | +		context=raw
 | ||||||
|  | +	(rc, trans)=selinux.selinux_raw_to_trans_context(context)
 | ||||||
|  | +	if rc != 0:
 | ||||||
|  | +		return raw
 | ||||||
|  | +	if prepend:
 | ||||||
|  | +		trans = trans.strip("a:b:c")
 | ||||||
|  | +	if trans == "":
 | ||||||
|  | +		return raw
 | ||||||
|  | +	else:
 | ||||||
|  | +		return trans
 | ||||||
|  | +	
 | ||||||
|  | +def untranslate(trans, prepend=1):
 | ||||||
|  | + 	if prepend == 1:
 | ||||||
|  | +		context="a:b:c:%s" % trans
 | ||||||
|  | +	else:
 | ||||||
|  | +		context=raw
 | ||||||
|  | +	(rc, raw)=selinux.selinux_trans_to_raw_context(context)
 | ||||||
|  | +	if rc != 0:
 | ||||||
|  | +		return trans
 | ||||||
|  | +	if prepend:
 | ||||||
|  | +		raw = raw.strip("a:b:c")	
 | ||||||
|  | +	if raw == "":
 | ||||||
|  | +		return trans
 | ||||||
|  | +	else:
 | ||||||
|  | +		return raw
 | ||||||
|  | +	
 | ||||||
|  |  class semanageRecords: | ||||||
|  |  	def __init__(self): | ||||||
|  |  		self.sh = semanage_handle_create() | ||||||
|  | @@ -37,6 +68,9 @@
 | ||||||
|  |  	def add(self, name, sename, serange): | ||||||
|  |  		if serange == "": | ||||||
|  |  			serange = "s0" | ||||||
|  | +		else:
 | ||||||
|  | +			serange = untranslate(serange)
 | ||||||
|  | +			
 | ||||||
|  |  		if sename == "": | ||||||
|  |  			sename = "user_u" | ||||||
|  |  			 | ||||||
|  | @@ -46,7 +80,7 @@
 | ||||||
|   |   | ||||||
|  		(rc,exists) = semanage_seuser_exists(self.sh, k) |  		(rc,exists) = semanage_seuser_exists(self.sh, k) | ||||||
|  		if exists: |  		if exists: | ||||||
| @ -55,7 +286,7 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
|  		try: |  		try: | ||||||
|  			pwd.getpwnam(name) |  			pwd.getpwnam(name) | ||||||
|  		except: |  		except: | ||||||
| @@ -54,40 +54,65 @@
 | @@ -54,40 +88,65 @@
 | ||||||
|  			 |  			 | ||||||
|  		(rc,u) = semanage_seuser_create(self.sh) |  		(rc,u) = semanage_seuser_create(self.sh) | ||||||
|  		if rc < 0: |  		if rc < 0: | ||||||
| @ -119,7 +350,8 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
| +			raise ValueError("Could not query seuser for %s" % name)
 | +			raise ValueError("Could not query seuser for %s" % name)
 | ||||||
|   |   | ||||||
|  		if serange != "": |  		if serange != "": | ||||||
|  			semanage_seuser_set_mlsrange(self.sh, u, serange) | -			semanage_seuser_set_mlsrange(self.sh, u, serange)
 | ||||||
|  | +			semanage_seuser_set_mlsrange(self.sh, u, untranslate(serange))
 | ||||||
|  		if sename != "": |  		if sename != "": | ||||||
|  			semanage_seuser_set_sename(self.sh, u, sename) |  			semanage_seuser_set_sename(self.sh, u, sename) | ||||||
| -		semanage_begin_transaction(self.sh)
 | -		semanage_begin_transaction(self.sh)
 | ||||||
| @ -142,7 +374,7 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
|  	def delete(self, name): |  	def delete(self, name): | ||||||
|  		(rc,k) = semanage_seuser_key_create(self.sh, name) |  		(rc,k) = semanage_seuser_key_create(self.sh, name) | ||||||
|  		if rc < 0: |  		if rc < 0: | ||||||
| @@ -95,15 +120,26 @@
 | @@ -95,15 +154,26 @@
 | ||||||
|   |   | ||||||
|  		(rc,exists) = semanage_seuser_exists(self.sh, k) |  		(rc,exists) = semanage_seuser_exists(self.sh, k) | ||||||
|  		if not exists: |  		if not exists: | ||||||
| @ -175,7 +407,29 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
|  		for idx in range(self.usize): |  		for idx in range(self.usize): | ||||||
|  			u = semanage_seuser_by_idx(self.ulist, idx) |  			u = semanage_seuser_by_idx(self.ulist, idx) | ||||||
|  			name = semanage_seuser_get_name(u) |  			name = semanage_seuser_get_name(u) | ||||||
| @@ -134,40 +170,59 @@
 | @@ -117,7 +187,7 @@
 | ||||||
|  |  		keys=dict.keys() | ||||||
|  |  		keys.sort() | ||||||
|  |  		for k in keys: | ||||||
|  | -			print "%-25s %-25s %-25s" % (k, dict[k][0], dict[k][1])
 | ||||||
|  | +			print "%-25s %-25s %-25s" % (k, dict[k][0], translate(dict[k][1]))
 | ||||||
|  |   | ||||||
|  |  class seluserRecords(semanageRecords): | ||||||
|  |  	def __init__(self): | ||||||
|  | @@ -126,87 +196,134 @@
 | ||||||
|  |  	def add(self, name, roles, selevel, serange): | ||||||
|  |  		if serange == "": | ||||||
|  |  			serange = "s0" | ||||||
|  | +		else:
 | ||||||
|  | +			serange = untranslate(serange)
 | ||||||
|  | +			
 | ||||||
|  |  		if selevel == "": | ||||||
|  |  			selevel = "s0" | ||||||
|  | +		else:
 | ||||||
|  | +			selevel = untranslate(selevel)
 | ||||||
|  |   | ||||||
|  |  		(rc,k) = semanage_user_key_create(self.sh, name) | ||||||
|  |  		if rc < 0: | ||||||
|  			raise ValueError("Could not create a key for %s" % name) |  			raise ValueError("Could not create a key for %s" % name) | ||||||
|   |   | ||||||
|  		(rc,exists) = semanage_user_exists(self.sh, k) |  		(rc,exists) = semanage_user_exists(self.sh, k) | ||||||
| @ -251,7 +505,13 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
|  		if rc < 0: |  		if rc < 0: | ||||||
|  			raise ValueError("Could not query user for %s" % name) |  			raise ValueError("Could not query user for %s" % name) | ||||||
|   |   | ||||||
| @@ -178,35 +233,57 @@
 |  		if serange != "": | ||||||
|  | -			semanage_user_set_mlsrange(self.sh, u, serange)
 | ||||||
|  | +			semanage_user_set_mlsrange(self.sh, u, untranslate(serange))
 | ||||||
|  |  		if selevel != "": | ||||||
|  | -			semanage_user_set_mlslevel(self.sh, u, selevel)
 | ||||||
|  | +			semanage_user_set_mlslevel(self.sh, u, untranslate(selevel))
 | ||||||
|  | +			
 | ||||||
|  		if len(roles) != 0: |  		if len(roles) != 0: | ||||||
|  			for r in roles: |  			for r in roles: | ||||||
|  				semanage_user_add_role(self.sh, u, r) |  				semanage_user_add_role(self.sh, u, r) | ||||||
| @ -326,7 +586,33 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
|  			roles = "" |  			roles = "" | ||||||
|   |   | ||||||
|  			if rlist_size: |  			if rlist_size: | ||||||
| @@ -278,62 +355,97 @@
 | @@ -219,13 +336,13 @@
 | ||||||
|  |   | ||||||
|  |  	def list(self, heading=1): | ||||||
|  |  		if heading: | ||||||
|  | -			print "\n%-15s %-10s %-20s" % ("", "MLS/", "MLS/")
 | ||||||
|  | -			print "%-15s %-10s %-15s %-20s\n" % ("SELinux User", "MCS Level", "MCS Range", "SELinux Roles")
 | ||||||
|  | +			print "\n%-15s %-10s %-30s" % ("", "MLS/", "MLS/")
 | ||||||
|  | +			print "%-15s %-10s %-30s %s\n" % ("SELinux User", "MCS Level", "MCS Range", "SELinux Roles")
 | ||||||
|  |  		dict=self.get_all() | ||||||
|  |  		keys=dict.keys() | ||||||
|  |  		keys.sort() | ||||||
|  |  		for k in keys: | ||||||
|  | -			print "%-15s %-10s %-15s %s" % (k, dict[k][0], dict[k][1], dict[k][2])
 | ||||||
|  | +			print "%-15s %-10s %-30s %s" % (k, translate(dict[k][0]), translate(dict[k][1]), dict[k][2])
 | ||||||
|  |   | ||||||
|  |  class portRecords(semanageRecords): | ||||||
|  |  	def __init__(self): | ||||||
|  | @@ -258,6 +375,8 @@
 | ||||||
|  |  	def add(self, port, proto, serange, type): | ||||||
|  |  		if serange == "": | ||||||
|  |  			serange="s0" | ||||||
|  | +		else:
 | ||||||
|  | +			serange=untranslate(serange)
 | ||||||
|  |  			 | ||||||
|  |  		if type == "": | ||||||
|  |  			raise ValueError("Type is required") | ||||||
|  | @@ -278,62 +397,97 @@
 | ||||||
|  		if rc < 0: |  		if rc < 0: | ||||||
|  			raise ValueError("Could not create context for %s/%s" % (proto, port)) |  			raise ValueError("Could not create context for %s/%s" % (proto, port)) | ||||||
|   |   | ||||||
| @ -394,7 +680,8 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
| -			raise ValueError("Could not get port context for %s/%s" % (proto, port))
 | -			raise ValueError("Could not get port context for %s/%s" % (proto, port))
 | ||||||
|  			 |  			 | ||||||
|  		if serange != "": |  		if serange != "": | ||||||
|  			semanage_context_set_mls(self.sh, con, serange)	 | -			semanage_context_set_mls(self.sh, con, serange)	
 | ||||||
|  | +			semanage_context_set_mls(self.sh, con, untranslate(serange))
 | ||||||
|  		if setype != "": |  		if setype != "": | ||||||
|  			semanage_context_set_type(self.sh, con, setype) |  			semanage_context_set_type(self.sh, con, setype) | ||||||
| -		semanage_begin_transaction(self.sh)
 | -		semanage_begin_transaction(self.sh)
 | ||||||
| @ -456,7 +743,15 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
|  		for idx in range(self.psize): |  		for idx in range(self.psize): | ||||||
|  			u = semanage_port_by_idx(self.plist, idx) |  			u = semanage_port_by_idx(self.plist, idx) | ||||||
|  			con = semanage_port_get_con(u) |  			con = semanage_port_get_con(u) | ||||||
| @@ -375,83 +487,122 @@
 | @@ -369,89 +523,130 @@
 | ||||||
|  |  	def add(self, interface, serange, type): | ||||||
|  |  		if serange == "": | ||||||
|  |  			serange="s0" | ||||||
|  | +		else:
 | ||||||
|  | +			serange=untranslate(serange)
 | ||||||
|  |  			 | ||||||
|  |  		if type == "": | ||||||
|  |  			raise ValueError("SELinux Type is required") | ||||||
|   |   | ||||||
|  		(rc,k) = semanage_iface_key_create(self.sh, interface) |  		(rc,k) = semanage_iface_key_create(self.sh, interface) | ||||||
|  		if rc < 0: |  		if rc < 0: | ||||||
| @ -550,7 +845,8 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
| -			raise ValueError("Could not get interface context for %s" % interface)
 | -			raise ValueError("Could not get interface context for %s" % interface)
 | ||||||
|  			 |  			 | ||||||
|  		if serange != "": |  		if serange != "": | ||||||
|  			semanage_context_set_mls(self.sh, con, serange)	 | -			semanage_context_set_mls(self.sh, con, serange)	
 | ||||||
|  | +			semanage_context_set_mls(self.sh, con, untranslate(serange))
 | ||||||
|  		if setype != "": |  		if setype != "": | ||||||
|  			semanage_context_set_type(self.sh, con, setype) |  			semanage_context_set_type(self.sh, con, setype) | ||||||
|   |   | ||||||
| @ -618,7 +914,24 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
|  		for idx in range(self.psize): |  		for idx in range(self.psize): | ||||||
|  			interface = semanage_iface_by_idx(self.plist, idx) |  			interface = semanage_iface_by_idx(self.plist, idx) | ||||||
|  			con = semanage_iface_get_ifcon(interface) |  			con = semanage_iface_get_ifcon(interface) | ||||||
| @@ -501,48 +652,69 @@
 | @@ -466,7 +661,7 @@
 | ||||||
|  |  		keys=dict.keys() | ||||||
|  |  		keys.sort() | ||||||
|  |  		for k in keys: | ||||||
|  | -			print "%-30s %s:%s:%s:%s " % (k,dict[k][0], dict[k][1],dict[k][2], dict[k][3])
 | ||||||
|  | +			print "%-30s %s:%s:%s:%s " % (k,dict[k][0], dict[k][1],dict[k][2], translate(dict[k][3], False))
 | ||||||
|  |  			 | ||||||
|  |  class fcontextRecords(semanageRecords): | ||||||
|  |  	def __init__(self): | ||||||
|  | @@ -495,89 +690,127 @@
 | ||||||
|  |  			 | ||||||
|  |  		if serange == "": | ||||||
|  |  			serange="s0" | ||||||
|  | +		else:
 | ||||||
|  | +			serange=untranslate(serange)
 | ||||||
|  |  			 | ||||||
|  |  		if type == "": | ||||||
|  |  			raise ValueError("SELinux Type is required") | ||||||
|   |   | ||||||
|  		(rc,k) = semanage_fcontext_key_create(self.sh, target, self.file_types[ftype]) |  		(rc,k) = semanage_fcontext_key_create(self.sh, target, self.file_types[ftype]) | ||||||
|  		if rc < 0: |  		if rc < 0: | ||||||
| @ -708,8 +1021,10 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
| -			raise ValueError("Could not get fcontext context for %s" % target)
 | -			raise ValueError("Could not get fcontext context for %s" % target)
 | ||||||
|  			 |  			 | ||||||
|  		if serange != "": |  		if serange != "": | ||||||
|  			semanage_context_set_mls(self.sh, con, serange)	 | -			semanage_context_set_mls(self.sh, con, serange)	
 | ||||||
| @@ -551,33 +723,48 @@
 | +			semanage_context_set_mls(self.sh, con, untranslate(serange))
 | ||||||
|  |  		if seuser != "": | ||||||
|  |  			semanage_context_set_user(self.sh, con, seuser)	 | ||||||
|  		if setype != "": |  		if setype != "": | ||||||
|  			semanage_context_set_type(self.sh, con, setype) |  			semanage_context_set_type(self.sh, con, setype) | ||||||
|   |   | ||||||
| @ -777,7 +1092,16 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
|   |   | ||||||
|  		for idx in range(self.psize): |  		for idx in range(self.psize): | ||||||
|  			fcontext = semanage_fcontext_by_idx(self.plist, idx) |  			fcontext = semanage_fcontext_by_idx(self.plist, idx) | ||||||
| @@ -606,117 +793,82 @@
 | @@ -598,7 +831,7 @@
 | ||||||
|  |  		keys=dict.keys() | ||||||
|  |  		for k in keys: | ||||||
|  |  			if dict[k]: | ||||||
|  | -				print "%-50s %-18s %s:%s:%s:%s " % (k[0], k[1], dict[k][0], dict[k][1],dict[k][2], dict[k][3])
 | ||||||
|  | +				print "%-50s %-18s %s:%s:%s:%s " % (k[0], k[1], dict[k][0], dict[k][1],dict[k][2], translate(dict[k][3],False))
 | ||||||
|  |  			else: | ||||||
|  |  				print "%-50s %-18s <<None>>" % (k[0], k[1]) | ||||||
|  |  				 | ||||||
|  | @@ -606,117 +839,82 @@
 | ||||||
|  	def __init__(self): |  	def __init__(self): | ||||||
|  		semanageRecords.__init__(self) |  		semanageRecords.__init__(self) | ||||||
|  		 |  		 | ||||||
| @ -802,13 +1126,13 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/semanage/seobject.py pol | |||||||
| -		if exists:
 | -		if exists:
 | ||||||
| -			raise ValueError("fcontext %s already defined" % target)
 | -			raise ValueError("fcontext %s already defined" % target)
 | ||||||
| -		(rc,fcontext) = semanage_fcontext_create(self.sh)
 | -		(rc,fcontext) = semanage_fcontext_create(self.sh)
 | ||||||
| +		(rc,k) = semanage_bool_key_create(self.sh, name)
 | -		if rc < 0:
 | ||||||
|  		if rc < 0: |  | ||||||
| -			raise ValueError("Could not create fcontext for %s" % target)
 | -			raise ValueError("Could not create fcontext for %s" % target)
 | ||||||
| -		
 | -		
 | ||||||
| -		rc = semanage_fcontext_set_expr(self.sh, fcontext, target)
 | -		rc = semanage_fcontext_set_expr(self.sh, fcontext, target)
 | ||||||
| -		(rc, con) = semanage_context_create(self.sh)
 | -		(rc, con) = semanage_context_create(self.sh)
 | ||||||
| -		if rc < 0:
 | +		(rc,k) = semanage_bool_key_create(self.sh, name)
 | ||||||
|  |  		if rc < 0: | ||||||
| -			raise ValueError("Could not create context for %s" % target)
 | -			raise ValueError("Could not create context for %s" % target)
 | ||||||
| -
 | -
 | ||||||
| -		semanage_context_set_user(self.sh, con, seuser)
 | -		semanage_context_set_user(self.sh, con, seuser)
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user