From owner-trustedbsd-cvs@FreeBSD.ORG Tue Aug 15 18:37:34 2006 Return-Path: X-Original-To: trustedbsd-cvs@freebsd.org Delivered-To: trustedbsd-cvs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C21F216A4DD for ; Tue, 15 Aug 2006 18:37:34 +0000 (UTC) (envelope-from owner-perforce@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id BB60E43D78 for ; Tue, 15 Aug 2006 18:37:17 +0000 (GMT) (envelope-from owner-perforce@freebsd.org) Received: from mx2.freebsd.org (mx2.freebsd.org [216.136.204.119]) by cyrus.watson.org (Postfix) with ESMTP id 8563C46B1C for ; Tue, 15 Aug 2006 14:37:16 -0400 (EDT) Received: from hub.freebsd.org (hub.freebsd.org [216.136.204.18]) by mx2.freebsd.org (Postfix) with ESMTP id 2A50655835; Tue, 15 Aug 2006 18:36:59 +0000 (GMT) (envelope-from owner-perforce@freebsd.org) Received: by hub.freebsd.org (Postfix, from userid 32767) id 270BD16A4DF; Tue, 15 Aug 2006 18:36:59 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 008B616A4DD for ; Tue, 15 Aug 2006 18:36:59 +0000 (UTC) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2F49E43D5E for ; Tue, 15 Aug 2006 18:36:50 +0000 (GMT) (envelope-from millert@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k7FIaoOJ043483 for ; Tue, 15 Aug 2006 18:36:50 GMT (envelope-from millert@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k7FIamTm043480 for perforce@freebsd.org; Tue, 15 Aug 2006 18:36:49 GMT (envelope-from millert@freebsd.org) Date: Tue, 15 Aug 2006 18:36:49 GMT Message-Id: <200608151836.k7FIamTm043480@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to millert@freebsd.org using -f From: Todd Miller To: Perforce Change Reviews Cc: Subject: PERFORCE change 104092 for review X-BeenThere: trustedbsd-cvs@FreeBSD.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: TrustedBSD CVS and Perforce commit message list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Aug 2006 18:37:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=104092 Change 104092 by millert@millert_macbook on 2006/08/15 18:36:39 Update to policycoreutils 1.30.25 from sourceforge Affected files ... .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/ChangeLog#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/Makefile#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/VERSION#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2allow/Makefile#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2allow/audit2allow#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2allow/audit2allow.1#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2allow/avc.py#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2why/audit2why.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/load_policy/load_policy.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/newrole/newrole.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/Makefile#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/POTFILES#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/POTFILES.in#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/af.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/am.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ar.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/be.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/bg.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/bn.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/bn_IN.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ca.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/cs.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/cy.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/da.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/de.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/el.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/en_GB.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/es.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/et.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/eu_ES.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/fa.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/fi.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/fr.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/gl.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/gu.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/he.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/hi.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/hr.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/hu.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/hy.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/id.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/is.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/it.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ja.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ka.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/kn.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ko.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ku.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/lo.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/lt.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/lv.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/mk.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ml.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/mr.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ms.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/my.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/nb.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/nl.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/nn.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/no.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/nso.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/or.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/pa.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/pl.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/policycoreutils.pot#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/pt.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/pt_BR.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ro.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ru.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/si.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/sk.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/sl.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/sq.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/sr.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/sv.po#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ta.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/te.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/th.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/tr.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/uk.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/ur.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/vi.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/zh_CN.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/zh_TW.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/po/zu.po#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecon/restorecon.8#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecon/restorecon.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/restorecond.8#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/restorecond.c#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/restorecond.conf#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/restorecond.h#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/restorecond.init#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/stringslist.c#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/stringslist.h#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/utmpwatcher.c#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/restorecond/utmpwatcher.h#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/run_init/open_init_pty.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/run_init/run_init.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/scripts/chcat#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/scripts/fixfiles#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/scripts/genhomedircon#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/secon/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/secon/secon.1#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/secon/secon.c#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semanage/semanage#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semanage/semanage.8#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semanage/seobject.py#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semodule/semodule.8#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semodule/semodule.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semodule_deps/Makefile#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semodule_deps/semodule_deps.8#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semodule_deps/semodule_deps.c#1 add .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semodule_expand/semodule_expand.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semodule_link/semodule_link.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/semodule_package/semodule_package.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/sestatus/sestatus.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/setfiles/Makefile#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/setfiles/setfiles.c#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/setsebool/setsebool.8#2 edit .. //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/setsebool/setsebool.c#2 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/ChangeLog#2 (text+ko) ==== @@ -1,3 +1,106 @@ +1.30.25 2006-08-03 + * Merged patch from Dan Walsh with: + * audit2allow: process MAC_POLICY_LOAD events + * newrole: run shell with - prefix to start a login shell + * po: po file updates + * restorecond: bail if SELinux not enabled + * fixfiles: omit -q + * genhomedircon: fix exit code if non-root + * semodule_deps: install man page + +1.30.24 2006-08-03 + * Merged secon Makefile fix from Joshua Brindle. + +1.30.23 2006-08-03 + * Merged netfilter contexts support patch from Chris PeBenito. + +1.30.22 2006-07-28 + * Merged restorecond size_t fix from Joshua Brindle. + +1.30.21 2006-07-28 + * Merged secon keycreate patch from Michael LeMay. + +1.30.20 2006-07-26 + * Merged restorecond fixes from Dan Walsh. + Merged updated po files from Dan Walsh. + +1.30.19 2006-07-26 + * Merged python gettext patch from Stephen Bennett. + +1.30.18 2006-07-25 + * Merged semodule_deps from Karl MacMillan. + +1.30.17 2006-06-29 + * Lindent. + +1.30.16 2006-06-26 + * Merged patch from Dan Walsh with: + * -p option (progress) for setfiles and restorecon. + * disable context translation for setfiles and restorecon. + * on/off values for setsebool. + +1.30.15 2006-06-26 + * Merged setfiles and semodule_link fixes from Joshua Brindle. + +1.30.14 2006-06-16 + * Merged fix for setsebool error path from Serge Hallyn. + +1.30.13 2006-06-16 + * Merged patch from Dan Walsh with: + * Updated po files. + * Fixes for genhomedircon and seobject. + * Audit message for mass relabel by setfiles. + +1.30.12 2006-06-02 + * Updated fixfiles script for new setfiles location in /sbin. + +1.30.11 2006-05-26 + * Merged more translations from Dan Walsh. + * Merged patch to relocate setfiles to /sbin for early relabel + when /usr might not be mounted from Dan Walsh. + * Merged semanage/seobject patch to preserve fcontext ordering in list. + * Merged secon patch from James Antill. + +1.30.10 2006-05-22 + * Merged patch with updates to audit2allow, secon, genhomedircon, + and semanage from Dan Walsh. + +1.30.9 2006-05-08 + * Fixed audit2allow and po Makefiles for DESTDIR= builds. + * Merged .po file patch from Dan Walsh. + * Merged bug fix for genhomedircon. + +1.30.8 2006-05-08 + * Merged patch from Dan Walsh. + This includes audit2allow changes for analysis plugins, + internationalization support for several additional programs + and added po files, some fixes for semanage, and several cleanups. + It also adds a new secon utility. + +1.30.7 2006-05-05 + * Merged fix warnings patch from Karl MacMillan. + +1.30.6 2006-04-14 + * Merged semanage prefix support from Russell Coker. + +1.30.5 2006-04-11 + * Added a test to setfiles to check that the spec file is + a regular file. + +1.30.4 2006-03-29 + * Merged audit2allow fixes for refpolicy from Dan Walsh. + * Merged fixfiles patch from Dan Walsh. + * Merged restorecond daemon from Dan Walsh. + +1.30.3 2006-03-29 + * Merged semanage non-MLS fixes from Chris PeBenito. + +1.30.2 2006-03-29 + * Merged semanage and semodule man page examples from Thomas Bleher. + +1.30.1 2006-03-20 + * Merged semanage labeling prefix patch from Ivan Gyurdiev. + 1.30 2006-03-14 * Updated version for release. ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/Makefile#2 (text+ko) ==== @@ -1,7 +1,8 @@ -SUBDIRS=setfiles semanage load_policy newrole run_init restorecon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand setsebool po +SUBDIRS=setfiles semanage load_policy newrole run_init restorecon restorecond secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po all install relabel clean: @for subdir in $(SUBDIRS); do \ (cd $$subdir && $(MAKE) $@) || exit 1; \ done +test: ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/VERSION#2 (text+ko) ==== @@ -1,1 +1,1 @@ -1.30 +1.30.25 ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2allow/Makefile#2 (text+ko) ==== @@ -1,8 +1,11 @@ # Installation directories. PREFIX ?= ${DESTDIR}/usr BINDIR ?= $(PREFIX)/bin +LIBDIR ?= $(PREFIX)/lib MANDIR ?= $(PREFIX)/share/man LOCALEDIR ?= /usr/share/locale +PYLIBVER ?= python2.4 +PYTHONLIBDIR ?= $(LIBDIR)/$(PYLIBVER) TARGETS=audit2allow @@ -13,6 +16,8 @@ install -m 755 $(TARGETS) $(BINDIR) -mkdir -p $(MANDIR)/man1 install -m 644 audit2allow.1 $(MANDIR)/man1/ + test -d $(PYTHONLIBDIR)/site-packages || install -m 755 -d $(PYTHONLIBDIR)/site-packages + install -m 755 avc.py $(PYTHONLIBDIR)/site-packages clean: ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2allow/audit2allow#2 (text+ko) ==== @@ -24,438 +24,23 @@ # 02111-1307 USA # # -import commands, sys, os, pwd, string, getopt, re, selinux - -obj="(\{[^\}]*\}|[^ \t:]*)" -allow_regexp="allow[ \t]+%s[ \t]*%s[ \t]*:[ \t]*%s[ \t]*%s" % (obj, obj, obj, obj) - -awk_script='/^[[:blank:]]*interface[[:blank:]]*\(/ {\n\ - IFACEFILE=FILENAME\n\ - IFACENAME = gensub("^[[:blank:]]*interface[[:blank:]]*\\\\(\`?","","g",$0);\n\ - IFACENAME = gensub("\'?,.*$","","g",IFACENAME);\n\ -}\n\ -\n\ -/^[[:blank:]]*allow[[:blank:]]+.*;[[:blank:]]*$/ {\n\ -\n\ - if ((length(IFACENAME) > 0) && (IFACEFILE == FILENAME)){\n\ - ALLOW = gensub("^[[:blank:]]*","","g",$0)\n\ - ALLOW = gensub(";[[:blank:]]*$","","g",$0)\n\ - print FILENAME "\\t" IFACENAME "\\t" ALLOW;\n\ - }\n\ -}\ -' - -class accessTrans: - def __init__(self): - self.dict={} - try: - fd=open("/usr/share/selinux/devel/include/support/obj_perm_sets.spt") - except IOError, error: - raise IOError("Reference policy generation requires the policy development package.\n%s" % error) - records=fd.read().split("\n") - regexp="^define *\(`([^']*)' *, *` *\{([^}]*)}'" - for r in records: - m=re.match(regexp,r) - if m!=None: - self.dict[m.groups()[0]] = m.groups()[1].split() - fd.close() - def get(self, var): - l=[] - for v in var: - if v in self.dict.keys(): - l += self.dict[v] - else: - if v not in ("{", "}"): - l.append(v) - return l - -class interfaces: - def __init__(self): - self.dict={} - trans=accessTrans() - (input, output) = os.popen2("awk -f - /usr/share/selinux/devel/include/*/*.if 2> /dev/null") - input.write(awk_script) - input.close() - records=output.read().split("\n") - input.close() - if len(records) > 0: - regexp="([^ \t]*)[ \t]+([^ \t]*)[ \t]+%s" % allow_regexp - for r in records: - m=re.match(regexp,r) - if m==None: - continue - else: - val=m.groups() - file=os.path.basename(val[0]).split(".")[0] - iface=val[1] - Scon=val[2].split() - Tcon=val[3].split() - Class=val[4].split() - Access=trans.get(val[5].split()) - for s in Scon: - for t in Tcon: - for c in Class: - if (s, t, c) not in self.dict.keys(): - self.dict[(s, t, c)]=[] - self.dict[(s, t, c)].append((Access, file, iface)) - def out(self): - keys=self.dict.keys() - keys.sort() - for k in keys: - print k - for i in self.dict[k]: - print "\t", i - - def match(self, Scon, Tcon, Class, Access): - keys=self.dict.keys() - ret=[] - if (Scon, Tcon, Class) in keys: - for i in self.dict[(Scon, Tcon, Class)]: - if Access in i[0]: - if i[2].find(Access) >= 0: - ret.insert(0, i) - else: - ret.append(i) - return ret - if ("$1", Tcon, Class) in keys: - for i in self.dict[("$1", Tcon, Class)]: - if Access in i[0]: - if i[2].find(Access) >= 0: - ret.insert(0, i) - else: - ret.append(i) - return ret - if (Scon, "$1", Class) in keys: - for i in self.dict[(Scon, "$1", Class)]: - if Access in i[0]: - if i[2].find(Access) >= 0: - ret.insert(0, i) - else: - ret.append(i) - return ret - else: - return ret - - -class serule: - def __init__(self, type, source, target, seclass): - self.type=type - self.source=source - self.target=target - self.seclass=seclass - self.avcinfo={} - self.iface=None - - def add(self, avc): - for a in avc[0]: - if a not in self.avcinfo.keys(): - self.avcinfo[a]=[] - - self.avcinfo[a].append(avc[1:]) - - def getAccess(self): - if len(self.avcinfo.keys()) == 1: - for i in self.avcinfo.keys(): - return i - else: - keys=self.avcinfo.keys() - keys.sort() - ret="{" - for i in keys: - ret=ret + " " + i - ret=ret+" }" - return ret - def out(self, verbose=0): - ret="" - ret=ret+"%s %s %s:%s %s;" % (self.type, self.source, self.gettarget(), self.seclass, self.getAccess()) - if verbose: - keys=self.avcinfo.keys() - keys.sort() - for i in keys: - for x in self.avcinfo[i]: - ret=ret+"\n\t#TYPE=AVC MSG=%s " % x[0] - if len(x[1]): - ret=ret+"COMM=%s " % x[1] - if len(x[2]): - ret=ret+"NAME=%s " % x[2] - ret=ret + " : " + i - return ret - - def gen_reference_policy(self, iface): - ret="" - Scon=self.source - Tcon=self.gettarget() - Class=self.seclass - Access=self.getAccess() - m=iface.match(Scon,Tcon,Class,Access) - if len(m)==0: - return self.out() - else: - file=m[0][1] - ret="\n#%s\n"% self.out() - ret += "optional_policy(`%s', `\n" % m[0][1] - first=True - for i in m: - if file != i[1]: - ret += "')\ngen_require(`%s', `\n" % i[1] - file = i[1] - first=True - if first: - ret += "\t%s(%s)\n" % (i[2], Scon) - first=False - else: - ret += "#\t%s(%s)\n" % (i[2], Scon) - ret += "');" - return ret - - def gettarget(self): - if self.source == self.target: - return "self" - else: - return self.target - -class seruleRecords: - def __init__(self, input, last_reload=0, verbose=0, te_ind=0): - self.last_reload=last_reload - self.seRules={} - self.seclasses={} - self.types=[] - self.roles=[] - self.load(input, te_ind) - self.gen_ref_policy = False - - def gen_reference_policy(self): - self.gen_ref_policy = True - self.iface=interfaces() - - def warning(self, error): - sys.stderr.write("%s: " % sys.argv[0]) - sys.stderr.write("%s\n" % error) - sys.stderr.flush() - - def load(self, input, te_ind=0): - VALID_CMDS=("allow", "dontaudit", "auditallow", "role") - - avc=[] - found=0 - line = input.readline() - if te_ind: - while line: - rec=line.split() - if len(rec) and rec[0] in VALID_CMDS: - self.add_terule(line) - line = input.readline() - - else: - while line: - rec=line.split() - for i in rec: - if i=="avc:" or i=="message=avc:" or i=="msg='avc:": - - found=1 - else: - avc.append(i) - if found: - self.add(avc) - found=0 - avc=[] - line = input.readline() - - - def get_target(self, i, rule): - target=[] - if rule[i][0] == "{": - for t in rule[i].split("{"): - if len(t): - target.append(t) - i=i+1 - for s in rule[i:]: - if s.find("}") >= 0: - for s1 in s.split("}"): - if len(s1): - target.append(s1) - i=i+1 - return (i, target) - - target.append(s) - i=i+1 - else: - if rule[i].find(";") >= 0: - for s1 in rule[i].split(";"): - if len(s1): - target.append(s1) - else: - target.append(rule[i]) - - i=i+1 - return (i, target) - - def rules_split(self, rules): - (idx, target ) = self.get_target(0, rules) - (idx, subject) = self.get_target(idx, rules) - return (target, subject) - - def add_terule(self, rule): - rc = rule.split(":") - rules=rc[0].split() - type=rules[0] - if type == "role": - print type - (sources, targets) = self.rules_split(rules[1:]) - rules=rc[1].split() - (seclasses, access) = self.rules_split(rules) - for scon in sources: - for tcon in targets: - for seclass in seclasses: - self.add_rule(type, scon, tcon, seclass,access) - - def add_rule(self, rule_type, scon, tcon, seclass, access, msg="", comm="", name=""): - self.add_seclass(seclass, access) - self.add_type(tcon) - self.add_type(scon) - if (rule_type, scon, tcon, seclass) not in self.seRules.keys(): - self.seRules[(rule_type, scon, tcon, seclass)]=serule(rule_type, scon, tcon, seclass) - - self.seRules[(rule_type, scon, tcon, seclass)].add((access, msg, comm, name )) - - def add(self,avc): - scon="" - tcon="" - seclass="" - comm="" - name="" - msg="" - access=[] - if "security_compute_sid" in avc: - return - - if "load_policy" in avc and self.last_reload: - self.seRules={} - - if "granted" in avc: - return - try: - for i in range (0, len(avc)): - if avc[i]=="{": - i=i+1 - while i 0: - for i in self.roles: - rec += "\trole %s; \n" % i - rec += "\n" - - for i in keys: - access=self.seclasses[i] - if len(access) > 1: - access.sort() - rec += "\tclass %s {" % i - for a in access: - rec += " %s" % a - rec += " }; \n" - else: - rec += "\tclass %s %s;\n" % (i, access[0]) - - rec += "\n" - - for i in self.types: - rec += "\ttype %s; \n" % i - rec += " };\n\n\n" - return rec - - def out(self, require=0, module=""): - rec="" - if len(self.seRules.keys())==0: - raise(ValueError("No AVC messages found.")) - if module != "": - rec += self.gen_module(module) - rec += self.gen_requires() - else: - if requires: - rec+=self.gen_requires() - - keys=self.seRules.keys() - keys.sort() - for i in keys: - if self.gen_ref_policy: - rec += self.seRules[i].gen_reference_policy(self.iface)+"\n" - else: - rec += self.seRules[i].out(verbose)+"\n" - return rec - if __name__ == '__main__': - + import commands, sys, os, getopt, selinux + import gettext + try: + gettext.install('policycoreutils') + except: + pass def get_mls_flag(): if selinux.is_selinux_mls_enabled(): return "-M" else: return "" - def usage(msg=""): - print 'audit2allow [-adhilrv] [-t file ] [ -f fcfile ] [-i ] [[-m|-M] ] [-o ]\n\ + def usage(msg = ""): + print _('audit2allow [-adhilrv] [-t file ] [ -f fcfile ] [-i ] [[-m|-M] ] [-o ]\n\ -a, --all read input from audit and message log, conflicts with -i\n\ -d, --dmesg read input from output of /bin/dmesg\n\ -h, --help display this message\n\ @@ -465,10 +50,11 @@ -M generate loadable module package, conflicts with -o\n\ -o, --output append output to , conflicts with -M\n\ -r, --requires generate require output \n\ - -t, --tefile Indicates input is Existing Type Enforcement file\n\ + -t, --tefile Add input from Existing Type Enforcement file\n\ -f, --fcfile Existing Type Enforcement file, requires -M\n\ -v, --verbose verbose output\n\ - ' + -A, --analyze Analyze output\n\ + ') if msg != "": print msg sys.exit(1) @@ -483,24 +69,26 @@ # # try: - last_reload=0 - input=sys.stdin - output=sys.stdout - module="" - requires=0 - verbose=0 - auditlogs=0 - buildPP=0 - input_ind=0 - output_ind=0 - ref_ind=False - te_ind=0 + last_reload = 0 + inputfd = sys.stdin + output = sys.stdout + module = "" + requires = 0 + verbose = 0 + auditlogs = 0 + buildPP = 0 + input_ind = 0 + output_ind = 0 + ref_ind = False + analyze = False + te_inputs = [] - fc_file="" + fc_file = "" gopts, cmds = getopt.getopt(sys.argv[1:], - 'adf:hi:lm:M:o:rtvR', + 'Aadf:hi:lm:M:o:rt:vR', ['all', - 'dmesg', + 'analyze', + 'dmesg', 'fcfile=', 'help', 'input=', @@ -509,57 +97,61 @@ 'output=', 'requires', 'reference', - 'tefile', + 'tefile=', 'verbose' ]) for o,a in gopts: if o == "-a" or o == "--all": - if input_ind or te_ind: + if input_ind: usage() - input=open("/var/log/messages", "r") - auditlogs=1 + inputfd = open("/var/log/messages", "r") + auditlogs = 1 if o == "-d" or o == "--dmesg": - input=os.popen("/bin/dmesg", "r") + inputfd = os.popen("/bin/dmesg", "r") if o == "-f" or o == "--fcfile": - if a[0]=="-": + if a[0] == "-": usage() - fc_file=a + fc_file = a if o == "-h" or o == "--help": usage() if o == "-i"or o == "--input": - if auditlogs or a[0]=="-": + if auditlogs or a[0] == "-": usage() - input_ind=1 - input=open(a, "r") + input_ind = 1 + inputfd = open(a, "r") if o == '--lastreload' or o == "-l": - last_reload=1 + last_reload = 1 if o == "-m" or o == "--module": - if module != "" or a[0]=="-": + if module != "" or a[0] == "-": usage() - module=a + module = a if o == "-M": - if module != "" or output_ind or a[0]=="-": + if module != "" or output_ind or a[0] == "-": usage() - module=a - outfile=a+".te" - buildPP=1 - output=open(outfile, "w") + module = a + outfile = a+".te" + buildPP = 1 + if not os.path.exists("/usr/bin/checkmodule"): + errorExit("-M Requires the checkmodule command, you need to install the checkpolicy rpm package") + output = open(outfile, "w") if o == "-r" or o == "--requires": - requires=1 + requires = 1 if o == "-t" or o == "--tefile": - if auditlogs: - usage() - te_ind=1 + te_inputs.append(open(a, "r")) + if o == "-R" or o == "--reference": - ref_ind=True + ref_ind = True if o == "-o" or o == "--output": - if module != "" or a[0]=="-": + if module != "" or a[0] == "-": usage() - output=open(a, "a") - output_ind=1 + output = open(a, "a") + output_ind = 1 if o == "-v" or o == "--verbose": - verbose=1 + verbose = 1 + + if o == "-A" or o == "--analyze": + analyze = True if len(cmds) != 0: usage() @@ -567,42 +159,52 @@ if fc_file != "" and not buildPP: usage("Error %s: Option -fc requires -M" % sys.argv[0]) - out=seruleRecords(input, last_reload, verbose, te_ind) + serules = SERules(last_reload, verbose) + + for i in te_inputs: + te = TERules(serules) + te.load(i) + + serules.load(inputfd) if ref_ind: - out.gen_reference_policy() + serules.gen_reference_policy() + + if analyze: + serules.analyze() + sys.exit(0) - if auditlogs: - input=os.popen("ausearch -m avc") - out.load(input) + if auditlogs and os.path.exists("/var/log/audit/audit.log"): + inputfd = os.popen("ausearch -m avc,MAC_POLICY_LOAD") + serules.load(inputfd) if buildPP: - print ("Generating type enforcment file: %s.te" % module) - output.write(out.out(requires, module)) + print (_("Generating type enforcment file: %s.te") % module) + output.write(serules.out(requires, module)) output.flush() if buildPP: - cmd="checkmodule %s -m -o %s.mod %s.te" % (get_mls_flag(), module, module) - print "Compiling policy" + cmd = "checkmodule %s -m -o %s.mod %s.te" % (get_mls_flag(), module, module) + print _("Compiling policy") print cmd - rc=commands.getstatusoutput(cmd) - if rc[0]==0: - cmd="semodule_package -o %s.pp -m %s.mod" % (module, module) + rc = commands.getstatusoutput(cmd) + if rc[0] == 0: + cmd = "semodule_package -o %s.pp -m %s.mod" % (module, module) if fc_file != "": cmd = "%s -f %s" % (cmd, fc_file) print cmd - rc=commands.getstatusoutput(cmd) - if rc[0]==0: - print ("\n******************** IMPORTANT ***********************\n") - print ("In order to load this newly created policy package into the kernel,\nyou are required to execute \n\nsemodule -i %s.pp\n\n" % module) + rc = commands.getstatusoutput(cmd) + if rc[0] == 0: + print _("\n******************** IMPORTANT ***********************\n") + print (_("In order to load this newly created policy package into the kernel,\nyou are required to execute \n\nsemodule -i %s.pp\n\n") % module) else: errorExit(rc[1]) else: errorExit(rc[1]) except getopt.error, error: - errorExit("Options Error " + error.msg) + errorExit(_("Options Error: %s ") % error.msg) except ValueError, error: errorExit(error.args[0]) except IOError, error: ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2allow/audit2allow.1#2 (text+ko) ==== @@ -66,7 +66,7 @@ Generate require output syntax for loadable modules. .TP .B "\-R" | "\-\-reference" -Generate reference policy using installed macros +Generate reference policy using installed macros. Requires the selinux-policy-devel package. .TP .B "\-t " | "\-\-tefile" Indicates input file is a te (type enforcement) file. This can be used to translate old te format to new policy format. @@ -98,6 +98,11 @@ .PP .SH EXAMPLE .nf +.B NOTE: These examples are for systems using the audit package. If you do +.B not use the audit package, the AVC messages will be in /var/log/messages. +.B Please substitute /var/log/messages for /var/log/audit/audit.log in the +.B examples. +.PP .B Using audit2allow to generate monolithic (non-module) policy $ cd /etc/selinux/$SELINUXTYPE/src/policy $ cat /var/log/audit/audit.log | audit2allow >> domains/misc/local.te ==== //depot/projects/trustedbsd/sedarwin8/policies/sedarwin/policycoreutils/audit2why/audit2why.c#2 (text+ko) ==== @@ -15,13 +15,14 @@ #define TCONTEXT "tcontext=" #define TCLASS "tclass=" -void usage(char *progname, int rc) +void usage(char *progname, int rc) { - fprintf(stderr, "usage: %s [-p policy] < /var/log/audit/audit.log\n", progname); + fprintf(stderr, "usage: %s [-p policy] < /var/log/audit/audit.log\n", + progname); exit(rc); } -int main(int argc, char **argv) +int main(int argc, char **argv) { char path[PATH_MAX]; char *buffer = NULL, *bufcopy = NULL; @@ -62,25 +63,30 @@ if (!set_path) { if (!is_selinux_enabled()) { - fprintf(stderr, "%s: Must specify -p policy on non-SELinux systems\n", argv[0]); + fprintf(stderr, + "%s: Must specify -p policy on non-SELinux systems\n", >>> TRUNCATED FOR MAIL (1000 lines) <<<