Do not load interface file by default when sepolicy is called, mov get_all_methods to the sepolicy package
This commit is contained in:
parent
c617c0cebf
commit
8c07616121
@ -270,14 +270,6 @@ index 0000000..0c2f399
|
||||
+Categories=System;Security;
|
||||
+X-Desktop-File-Install-Version=0.2
|
||||
+Keywords=policy;security;selinux;avc;permission;mac;
|
||||
diff --git a/policycoreutils/gui/sepolgen b/policycoreutils/gui/sepolgen
|
||||
deleted file mode 100644
|
||||
index 2f0c1cc..0000000
|
||||
--- a/policycoreutils/gui/sepolgen
|
||||
+++ /dev/null
|
||||
@@ -1,2 +0,0 @@
|
||||
-#!/bin/sh
|
||||
-sepolicy generate $*
|
||||
diff --git a/policycoreutils/gui/system-config-selinux b/policycoreutils/gui/system-config-selinux
|
||||
new file mode 100755
|
||||
index 0000000..5be5ccd
|
||||
@ -1546,7 +1538,7 @@ index b25d3b2..7a15d88 100755
|
||||
sys.exit(0)
|
||||
except ValueError,e:
|
||||
diff --git a/policycoreutils/sepolicy/sepolicy/__init__.py b/policycoreutils/sepolicy/sepolicy/__init__.py
|
||||
index 5e7415c..e0f5f86 100644
|
||||
index 5e7415c..9f4a774 100644
|
||||
--- a/policycoreutils/sepolicy/sepolicy/__init__.py
|
||||
+++ b/policycoreutils/sepolicy/sepolicy/__init__.py
|
||||
@@ -37,9 +37,30 @@ CLASS = 'class'
|
||||
@ -1582,7 +1574,33 @@ index 5e7415c..e0f5f86 100644
|
||||
policies = glob.glob ("%s.*" % path )
|
||||
policies.sort()
|
||||
return policies[-1]
|
||||
@@ -54,6 +75,13 @@ def get_all_types():
|
||||
@@ -47,6 +68,25 @@ def __get_installed_policy():
|
||||
pass
|
||||
raise ValueError(_("No SELinux Policy installed"))
|
||||
|
||||
+methods = []
|
||||
+def get_methods():
|
||||
+ global methods
|
||||
+ if len(methods) > 0:
|
||||
+ return methods
|
||||
+ fn = defaults.interface_info()
|
||||
+ try:
|
||||
+ fd = open(fn)
|
||||
+ # List of per_role_template interfaces
|
||||
+ ifs = interfaces.InterfaceSet()
|
||||
+ ifs.from_file(fd)
|
||||
+ methods = ifs.interfaces.keys()
|
||||
+ fd.close()
|
||||
+ except:
|
||||
+ sys.stderr.write("could not open interface info [%s]\n" % fn)
|
||||
+ sys.exit(1)
|
||||
+
|
||||
+ return methods
|
||||
+
|
||||
all_types = None
|
||||
def get_all_types():
|
||||
global all_types
|
||||
@@ -54,6 +94,13 @@ def get_all_types():
|
||||
all_types = map(lambda x: x['name'], info(TYPE))
|
||||
return all_types
|
||||
|
||||
@ -1596,7 +1614,7 @@ index 5e7415c..e0f5f86 100644
|
||||
role_allows = None
|
||||
def get_all_role_allows():
|
||||
global role_allows
|
||||
@@ -71,6 +99,7 @@ def get_all_role_allows():
|
||||
@@ -71,6 +118,7 @@ def get_all_role_allows():
|
||||
return role_allows
|
||||
|
||||
def get_all_entrypoint_domains():
|
||||
@ -1604,7 +1622,7 @@ index 5e7415c..e0f5f86 100644
|
||||
all_domains = []
|
||||
types=get_all_types()
|
||||
types.sort()
|
||||
@@ -81,11 +110,35 @@ def get_all_entrypoint_domains():
|
||||
@@ -81,11 +129,35 @@ def get_all_entrypoint_domains():
|
||||
all_domains.append(m[0])
|
||||
return all_domains
|
||||
|
||||
@ -1641,7 +1659,7 @@ index 5e7415c..e0f5f86 100644
|
||||
return all_domains
|
||||
|
||||
roles = None
|
||||
@@ -139,49 +192,42 @@ def get_all_attributes():
|
||||
@@ -139,49 +211,42 @@ def get_all_attributes():
|
||||
return all_attributes
|
||||
|
||||
def policy(policy_file):
|
||||
@ -1711,18 +1729,40 @@ index 5e7415c..e0f5f86 100644
|
||||
def gen_bool_dict(path="/usr/share/selinux/devel/policy.xml"):
|
||||
global booleans_dict
|
||||
diff --git a/policycoreutils/sepolicy/sepolicy/generate.py b/policycoreutils/sepolicy/sepolicy/generate.py
|
||||
index 26f8390..a23ce9b 100644
|
||||
index 26f8390..898ec43 100644
|
||||
--- a/policycoreutils/sepolicy/sepolicy/generate.py
|
||||
+++ b/policycoreutils/sepolicy/sepolicy/generate.py
|
||||
@@ -63,7 +63,6 @@ except IOError:
|
||||
@@ -63,20 +63,6 @@ except IOError:
|
||||
import __builtin__
|
||||
__builtin__.__dict__['_'] = unicode
|
||||
|
||||
-user_types = sepolicy.info(sepolicy.ATTRIBUTE,"userdomain")[0]["types"]
|
||||
methods = []
|
||||
fn = defaults.interface_info()
|
||||
try:
|
||||
@@ -1037,7 +1036,8 @@ allow %s_t %s_t:%s_socket name_%s;
|
||||
-methods = []
|
||||
-fn = defaults.interface_info()
|
||||
-try:
|
||||
- fd = open(fn)
|
||||
- # List of per_role_template interfaces
|
||||
- ifs = interfaces.InterfaceSet()
|
||||
- ifs.from_file(fd)
|
||||
- methods = ifs.interfaces.keys()
|
||||
- fd.close()
|
||||
-except:
|
||||
- sys.stderr.write("could not open interface info [%s]\n" % fn)
|
||||
- sys.exit(1)
|
||||
-
|
||||
def get_rpm_nvr_from_header(hdr):
|
||||
'Given an RPM header return the package NVR as a string'
|
||||
name = hdr['name']
|
||||
@@ -587,7 +573,7 @@ class policy:
|
||||
def generate_network_action(self, protocol, action, port_name):
|
||||
line = ""
|
||||
method = "corenet_%s_%s_%s" % (protocol, action, port_name)
|
||||
- if method in methods:
|
||||
+ if method in sepolicy.get_methods():
|
||||
line = "%s(%s_t)\n" % (method, self.name)
|
||||
else:
|
||||
line = """
|
||||
@@ -1037,7 +1023,8 @@ allow %s_t %s_t:%s_socket name_%s;
|
||||
########################################
|
||||
#
|
||||
# %s local policy
|
||||
@ -1732,6 +1772,53 @@ index 26f8390..a23ce9b 100644
|
||||
newte += self.generate_capabilities()
|
||||
newte += self.generate_process()
|
||||
newte += self.generate_network_types()
|
||||
diff --git a/policycoreutils/sepolicy/sepolicy/interface.py b/policycoreutils/sepolicy/sepolicy/interface.py
|
||||
index 8b063ca..5e92c7c 100644
|
||||
--- a/policycoreutils/sepolicy/sepolicy/interface.py
|
||||
+++ b/policycoreutils/sepolicy/sepolicy/interface.py
|
||||
@@ -27,7 +27,7 @@ import sepolgen.interfaces as interfaces
|
||||
import sepolgen.defaults as defaults
|
||||
ADMIN_TRANSITION_INTERFACE = "_admin$"
|
||||
USER_TRANSITION_INTERFACE = "_role$"
|
||||
-from sepolicy.generate import get_all_types
|
||||
+import selinux
|
||||
|
||||
__all__ = [ 'get', 'get_admin', 'get_user' ]
|
||||
|
||||
@@ -48,24 +48,10 @@ except IOError:
|
||||
import __builtin__
|
||||
__builtin__.__dict__['_'] = unicode
|
||||
|
||||
-def get():
|
||||
- """ Get all Methods """
|
||||
- fn = defaults.interface_info()
|
||||
- try:
|
||||
- fd = open(fn)
|
||||
- ifs = interfaces.InterfaceSet()
|
||||
- ifs.from_file(fd)
|
||||
- methods = ifs.interfaces.keys()
|
||||
- fd.close()
|
||||
- except:
|
||||
- raise ValueError(_("could not open interface info [%s]\n") % fn)
|
||||
-
|
||||
- return methods
|
||||
-
|
||||
def get_admin():
|
||||
""" Get all domains with an admin interface"""
|
||||
admin_list = []
|
||||
- for i in get():
|
||||
+ for i in sepolicy.get_methods():
|
||||
if i.endswith("_admin"):
|
||||
admin_list.append(i.split("_admin")[0])
|
||||
return admin_list
|
||||
@@ -76,6 +62,6 @@ def get_user():
|
||||
for i in get():
|
||||
m = re.findall("(.*)%s" % USER_TRANSITION_INTERFACE, i)
|
||||
if len(m) > 0:
|
||||
- if "%s_exec_t" % m[0] in get_all_types():
|
||||
+ if "%s_exec_t" % m[0] in sepolicy.get_all_types():
|
||||
trans_list.append(m[0])
|
||||
return trans_list
|
||||
diff --git a/policycoreutils/sepolicy/sepolicy/manpage.py b/policycoreutils/sepolicy/sepolicy/manpage.py
|
||||
index 25062da..b3c24e6 100755
|
||||
--- a/policycoreutils/sepolicy/sepolicy/manpage.py
|
||||
|
@ -7,7 +7,7 @@
|
||||
Summary: SELinux policy core utilities
|
||||
Name: policycoreutils
|
||||
Version: 2.1.14
|
||||
Release: 11%{?dist}
|
||||
Release: 12%{?dist}
|
||||
License: GPLv2
|
||||
Group: System Environment/Base
|
||||
# Based on git repository with tag 20101221
|
||||
@ -324,6 +324,9 @@ The policycoreutils-restorecond package contains the restorecond service.
|
||||
%{_bindir}/systemctl try-restart restorecond.service >/dev/null 2>&1 || :
|
||||
|
||||
%changelog
|
||||
* Fri Feb 22 2013 Dan Walsh <dwalsh@redhat.com> - 2.1.14-12
|
||||
- Do not load interface file by default when sepolicy is called, mov get_all_methods to the sepolicy package
|
||||
|
||||
* Fri Feb 22 2013 Dan Walsh <dwalsh@redhat.com> - 2.1.14-11
|
||||
- sepolgen-ifgen should use the current policy path if selinux is enabled
|
||||
|
||||
@ -355,7 +358,7 @@ do not drop capabilities when run as root.
|
||||
|
||||
* Thu Feb 14 2013 Dan Walsh <dwalsh@redhat.com> - 2.1.14-4
|
||||
- Revert some changes which are causing the wrong policy version file to be created
|
||||
- Switch sandbox to start using openbox rather then matchpbox
|
||||
- Switch sandbox to start using openbox rather then matchbox
|
||||
- Make sepolgen a symlink to sepolicy
|
||||
- update translations
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user