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;
|
+Categories=System;Security;
|
||||||
+X-Desktop-File-Install-Version=0.2
|
+X-Desktop-File-Install-Version=0.2
|
||||||
+Keywords=policy;security;selinux;avc;permission;mac;
|
+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
|
diff --git a/policycoreutils/gui/system-config-selinux b/policycoreutils/gui/system-config-selinux
|
||||||
new file mode 100755
|
new file mode 100755
|
||||||
index 0000000..5be5ccd
|
index 0000000..5be5ccd
|
||||||
@ -1546,7 +1538,7 @@ index b25d3b2..7a15d88 100755
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
except ValueError,e:
|
except ValueError,e:
|
||||||
diff --git a/policycoreutils/sepolicy/sepolicy/__init__.py b/policycoreutils/sepolicy/sepolicy/__init__.py
|
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
|
--- a/policycoreutils/sepolicy/sepolicy/__init__.py
|
||||||
+++ b/policycoreutils/sepolicy/sepolicy/__init__.py
|
+++ b/policycoreutils/sepolicy/sepolicy/__init__.py
|
||||||
@@ -37,9 +37,30 @@ CLASS = 'class'
|
@@ -37,9 +37,30 @@ CLASS = 'class'
|
||||||
@ -1582,7 +1574,33 @@ index 5e7415c..e0f5f86 100644
|
|||||||
policies = glob.glob ("%s.*" % path )
|
policies = glob.glob ("%s.*" % path )
|
||||||
policies.sort()
|
policies.sort()
|
||||||
return policies[-1]
|
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))
|
all_types = map(lambda x: x['name'], info(TYPE))
|
||||||
return all_types
|
return all_types
|
||||||
|
|
||||||
@ -1596,7 +1614,7 @@ index 5e7415c..e0f5f86 100644
|
|||||||
role_allows = None
|
role_allows = None
|
||||||
def get_all_role_allows():
|
def get_all_role_allows():
|
||||||
global 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
|
return role_allows
|
||||||
|
|
||||||
def get_all_entrypoint_domains():
|
def get_all_entrypoint_domains():
|
||||||
@ -1604,7 +1622,7 @@ index 5e7415c..e0f5f86 100644
|
|||||||
all_domains = []
|
all_domains = []
|
||||||
types=get_all_types()
|
types=get_all_types()
|
||||||
types.sort()
|
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])
|
all_domains.append(m[0])
|
||||||
return all_domains
|
return all_domains
|
||||||
|
|
||||||
@ -1641,7 +1659,7 @@ index 5e7415c..e0f5f86 100644
|
|||||||
return all_domains
|
return all_domains
|
||||||
|
|
||||||
roles = None
|
roles = None
|
||||||
@@ -139,49 +192,42 @@ def get_all_attributes():
|
@@ -139,49 +211,42 @@ def get_all_attributes():
|
||||||
return all_attributes
|
return all_attributes
|
||||||
|
|
||||||
def policy(policy_file):
|
def policy(policy_file):
|
||||||
@ -1711,18 +1729,40 @@ index 5e7415c..e0f5f86 100644
|
|||||||
def gen_bool_dict(path="/usr/share/selinux/devel/policy.xml"):
|
def gen_bool_dict(path="/usr/share/selinux/devel/policy.xml"):
|
||||||
global booleans_dict
|
global booleans_dict
|
||||||
diff --git a/policycoreutils/sepolicy/sepolicy/generate.py b/policycoreutils/sepolicy/sepolicy/generate.py
|
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
|
--- a/policycoreutils/sepolicy/sepolicy/generate.py
|
||||||
+++ b/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__
|
import __builtin__
|
||||||
__builtin__.__dict__['_'] = unicode
|
__builtin__.__dict__['_'] = unicode
|
||||||
|
|
||||||
-user_types = sepolicy.info(sepolicy.ATTRIBUTE,"userdomain")[0]["types"]
|
-user_types = sepolicy.info(sepolicy.ATTRIBUTE,"userdomain")[0]["types"]
|
||||||
methods = []
|
-methods = []
|
||||||
fn = defaults.interface_info()
|
-fn = defaults.interface_info()
|
||||||
try:
|
-try:
|
||||||
@@ -1037,7 +1036,8 @@ allow %s_t %s_t:%s_socket name_%s;
|
- 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
|
# %s local policy
|
||||||
@ -1732,6 +1772,53 @@ index 26f8390..a23ce9b 100644
|
|||||||
newte += self.generate_capabilities()
|
newte += self.generate_capabilities()
|
||||||
newte += self.generate_process()
|
newte += self.generate_process()
|
||||||
newte += self.generate_network_types()
|
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
|
diff --git a/policycoreutils/sepolicy/sepolicy/manpage.py b/policycoreutils/sepolicy/sepolicy/manpage.py
|
||||||
index 25062da..b3c24e6 100755
|
index 25062da..b3c24e6 100755
|
||||||
--- a/policycoreutils/sepolicy/sepolicy/manpage.py
|
--- a/policycoreutils/sepolicy/sepolicy/manpage.py
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
Summary: SELinux policy core utilities
|
Summary: SELinux policy core utilities
|
||||||
Name: policycoreutils
|
Name: policycoreutils
|
||||||
Version: 2.1.14
|
Version: 2.1.14
|
||||||
Release: 11%{?dist}
|
Release: 12%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
# Based on git repository with tag 20101221
|
# 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 || :
|
%{_bindir}/systemctl try-restart restorecond.service >/dev/null 2>&1 || :
|
||||||
|
|
||||||
%changelog
|
%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
|
* 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
|
- 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
|
* 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
|
- 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
|
- Make sepolgen a symlink to sepolicy
|
||||||
- update translations
|
- update translations
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user