1 diff -up policycoreutils-2.1.8/gui/booleansPage.py.gui policycoreutils-2.1.8/gui/booleansPage.py
2 --- policycoreutils-2.1.8/gui/booleansPage.py.gui 2011-11-07 15:12:01.891834224 -0500
3 +++ policycoreutils-2.1.8/gui/booleansPage.py 2011-11-07 15:12:01.892834224 -0500
6 +# booleansPage.py - GUI for Booleans page in system-config-securitylevel
8 +# Dan Walsh <dwalsh@redhat.com>
10 +# Copyright 2006, 2007 Red Hat, Inc.
12 +# This program is free software; you can redistribute it and/or modify
13 +# it under the terms of the GNU General Public License as published by
14 +# the Free Software Foundation; either version 2 of the License, or
15 +# (at your option) any later version.
17 +# This program is distributed in the hope that it will be useful,
18 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
19 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 +# GNU General Public License for more details.
22 +# You should have received a copy of the GNU General Public License
23 +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
35 +INSTALLPATH='/usr/share/system-config-selinux'
36 +sys.path.append(INSTALLPATH)
46 +PROGNAME="policycoreutils"
49 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
50 +gettext.textdomain(PROGNAME)
52 + gettext.install(PROGNAME,
53 + localedir="/usr/share/locale",
58 + __builtin__.__dict__['_'] = unicode
60 +from glob import fnmatch
63 + def __init__(self,name, on, save):
68 + def set(self,value):
75 +class Boolean(Modifier):
76 + def __init__(self,name, val, save=False):
77 + Modifier.__init__(self,name, val, save)
85 + def __init__(self, xml, doDebug=None):
87 + xml.signal_connect("on_lockdown_clicked", self.on_lockdown_clicked)
88 + self.window = self.xml.get_widget("mainWindow").get_root_window()
91 + self.selinuxsupport = True
92 + self.typechanged = False
93 + self.doDebug = doDebug
94 + self.busy_cursor = gtk.gdk.Cursor(gtk.gdk.WATCH)
95 + self.ready_cursor = gtk.gdk.Cursor(gtk.gdk.LEFT_PTR)
97 + # Bring in widgets from glade file.
98 + self.typeHBox = xml.get_widget("typeHBox")
99 + self.booleanSW = xml.get_widget("booleanSW")
100 + self.booleansFilter = xml.get_widget("booleansFilter")
101 + self.booleansFilter.connect("focus_out_event", self.filter_changed)
102 + self.booleansFilter.connect("activate", self.filter_changed)
104 + self.booleansView = xml.get_widget("booleansView")
105 + self.typeLabel = xml.get_widget("typeLabel")
106 + self.modifySeparator = xml.get_widget("modifySeparator")
108 + self.revertButton = xml.get_widget("booleanRevertButton")
109 + self.revertButton.set_sensitive(self.local)
110 + self.revertButton.connect("clicked", self.on_revert_clicked)
111 + listStore = gtk.ListStore(gobject.TYPE_STRING)
112 + cell = gtk.CellRendererText()
114 + self.store = gtk.ListStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
115 + self.store.set_sort_column_id(1, gtk.SORT_ASCENDING)
116 + self.booleansView.set_model(self.store)
118 + checkbox = gtk.CellRendererToggle()
119 + checkbox.connect("toggled", self.boolean_toggled)
120 + col = gtk.TreeViewColumn('Active', checkbox, active = ACTIVE)
121 + col.set_clickable(True)
122 + col.set_sort_column_id(ACTIVE)
123 + self.booleansView.append_column(col)
125 + col = gtk.TreeViewColumn("Module", gtk.CellRendererText(), text=MODULE)
126 + col.set_sort_column_id(MODULE)
127 + col.set_resizable(True)
128 + self.booleansView.append_column(col)
130 + col = gtk.TreeViewColumn("Description", gtk.CellRendererText(), text=DESC)
131 + col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
132 + col.set_fixed_width(400)
133 + col.set_sort_column_id(DESC)
134 + col.set_resizable(True)
135 + self.booleansView.append_column(col)
137 + col = gtk.TreeViewColumn("Name", gtk.CellRendererText(), text=BOOLEAN)
138 + col.set_sort_column_id(BOOLEAN)
139 + col.set_resizable(True)
140 + self.booleansView.set_search_equal_func(self.__search)
141 + self.booleansView.append_column(col)
143 + self.load(self.filter)
145 + def __search(self, model, col, key, i):
146 + sort_col = self.store.get_sort_column_id()[0]
148 + val = model.get_value(i, sort_col)
149 + if val.lower().startswith(key.lower()):
154 + self.window.set_cursor(self.busy_cursor)
155 + semanagePage.idle_func()
158 + self.window.set_cursor(self.ready_cursor)
159 + semanagePage.idle_func()
161 + def deleteDialog(self):
162 + store, iter = self.booleansView.get_selection().get_selected()
165 + boolean = store.get_value(iter, BOOLEAN)
167 + if boolean == None:
171 + (rc, out) = commands.getstatusoutput("semanage boolean -d %s" % boolean)
175 + return self.error(out)
176 + self.load(self.filter)
177 + except ValueError, e:
178 + self.error(e.args[0])
180 + def filter_changed(self, *arg):
181 + filter = arg[0].get_text()
182 + if filter != self.filter:
186 + def use_menus(self):
189 + def get_description(self):
190 + return _("Boolean")
192 + def match(self,key, filter=""):
195 + cat=self.booleans.get_category(key).lower()
196 + val=self.booleans.get_desc(key).lower()
198 + return val.find(f) >= 0 or k.find(f) >= 0 or cat.find(f) >= 0
203 + def load(self, filter=None):
205 + self.booleans = seobject.booleanRecords()
206 + booleansList = self.booleans.get_all(self.local)
207 + for name in booleansList:
208 + rec = booleansList[name]
209 + if self.match(name, filter):
210 + iter=self.store.append()
211 + self.store.set_value(iter, ACTIVE, rec[2] == 1)
212 + self.store.set_value(iter, MODULE, self.booleans.get_category(name))
213 + self.store.set_value(iter, DESC, self.booleans.get_desc(name))
214 + self.store.set_value(iter, BOOLEAN, name)
216 + def boolean_toggled(self, widget, row):
217 + iter = self.store.get_iter(row)
218 + val = self.store.get_value(iter, ACTIVE)
219 + key = self.store.get_value(iter, BOOLEAN)
220 + self.store.set_value(iter, ACTIVE , not val)
222 + setsebool="/usr/sbin/setsebool -P %s=%d" % (key, not val)
223 + commands.getstatusoutput(setsebool)
224 + self.load(self.filter)
227 + def on_revert_clicked(self, button):
229 + setsebool="semanage boolean --deleteall"
230 + commands.getstatusoutput(setsebool)
231 + self.load(self.filter)
234 + def on_lockdown_clicked(self, button):
236 + os.spawnl(os.P_NOWAIT, "/usr/share/system-config-selinux/lockdown.py")
237 + except ValueError, e:
238 + self.error(e.args[0])
240 + def on_local_clicked(self, button):
241 + self.local = not self.local
242 + self.revertButton.set_sensitive(self.local)
245 + button.set_label(_("all"))
247 + button.set_label(_("Customized"))
249 + self.load(self.filter)
252 diff -up policycoreutils-2.1.8/gui/domainsPage.py.gui policycoreutils-2.1.8/gui/domainsPage.py
253 --- policycoreutils-2.1.8/gui/domainsPage.py.gui 2011-11-07 15:12:01.892834224 -0500
254 +++ policycoreutils-2.1.8/gui/domainsPage.py 2011-11-07 15:12:01.892834224 -0500
256 +## domainsPage.py - show selinux domains
257 +## Copyright (C) 2009 Red Hat, Inc.
259 +## This program is free software; you can redistribute it and/or modify
260 +## it under the terms of the GNU General Public License as published by
261 +## the Free Software Foundation; either version 2 of the License, or
262 +## (at your option) any later version.
264 +## This program is distributed in the hope that it will be useful,
265 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
266 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
267 +## GNU General Public License for more details.
269 +## You should have received a copy of the GNU General Public License
270 +## along with this program; if not, write to the Free Software
271 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
273 +## Author: Dan Walsh
283 +from semanagePage import *;
289 +PROGNAME="policycoreutils"
291 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
292 +gettext.textdomain(PROGNAME)
294 + gettext.install(PROGNAME,
295 + localedir="/usr/share/locale",
300 + __builtin__.__dict__['_'] = unicode
302 +class domainsPage(semanagePage):
303 + def __init__(self, xml):
304 + semanagePage.__init__(self, xml, "domains", _("Process Domain"))
305 + self.domain_filter = xml.get_widget("domainsFilterEntry")
306 + self.domain_filter.connect("focus_out_event", self.filter_changed)
307 + self.domain_filter.connect("activate", self.filter_changed)
309 + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
310 + self.view.set_model(self.store)
311 + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
312 + col = gtk.TreeViewColumn(_("Domain Name"), gtk.CellRendererText(), text = 0)
313 + col.set_sort_column_id(0)
314 + col.set_resizable(True)
315 + self.view.append_column(col)
316 + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
317 + col = gtk.TreeViewColumn(_("Mode"), gtk.CellRendererText(), text = 1)
318 + col.set_sort_column_id(1)
319 + col.set_resizable(True)
320 + self.view.append_column(col)
321 + self.view.get_selection().connect("changed", self.itemSelected)
323 + self.permissive_button = xml.get_widget("permissiveButton")
324 + self.enforcing_button = xml.get_widget("enforcingButton")
326 + self.domains=polgen.get_all_domains()
329 + def get_modules(self):
331 + fd=os.popen("semodule -l")
332 + mods = fd.readlines()
335 + modules.append(l.split()[0])
338 + def load(self, filter=""):
342 + modules=self.get_modules()
343 + for domain in self.domains:
344 + if not self.match(domain, filter):
346 + iter = self.store.append()
347 + self.store.set_value(iter, 0, domain)
348 + t = "permissive_%s_t" % domain
350 + self.store.set_value(iter, 1, _("Permissive"))
352 + self.store.set_value(iter, 1, "")
355 + self.view.get_selection().select_path ((0,))
357 + def itemSelected(self, selection):
358 + store, iter = selection.get_selected()
361 + p = store.get_value(iter, 1) == _("Permissive")
362 + self.permissive_button.set_sensitive(not p)
363 + self.enforcing_button.set_sensitive(p)
365 + def deleteDialog(self):
367 + return self.delete()
370 + selection = self.view.get_selection()
371 + store, iter = selection.get_selected()
372 + domain = store.get_value(iter, 0)
375 + status, output = commands.getstatusoutput("semanage permissive -d %s_t" % domain)
380 + domain = store.set_value(iter, 1, "")
381 + self.itemSelected(selection)
383 + except ValueError, e:
384 + self.error(e.args[0])
386 + def propertiesDialog(self):
390 + def addDialog(self):
395 + selection = self.view.get_selection()
396 + store, iter = selection.get_selected()
397 + domain = store.get_value(iter, 0)
400 + status, output = commands.getstatusoutput("semanage permissive -a %s_t" % domain)
405 + domain = store.set_value(iter, 1, _("Permissive"))
406 + self.itemSelected(selection)
408 + except ValueError, e:
409 + self.error(e.args[0])
410 diff -up policycoreutils-2.1.8/gui/fcontextPage.py.gui policycoreutils-2.1.8/gui/fcontextPage.py
411 --- policycoreutils-2.1.8/gui/fcontextPage.py.gui 2011-11-07 15:12:01.893834225 -0500
412 +++ policycoreutils-2.1.8/gui/fcontextPage.py 2011-11-07 15:12:01.893834225 -0500
414 +## fcontextPage.py - show selinux mappings
415 +## Copyright (C) 2006 Red Hat, Inc.
417 +## This program is free software; you can redistribute it and/or modify
418 +## it under the terms of the GNU General Public License as published by
419 +## the Free Software Foundation; either version 2 of the License, or
420 +## (at your option) any later version.
422 +## This program is distributed in the hope that it will be useful,
423 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
424 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
425 +## GNU General Public License for more details.
427 +## You should have received a copy of the GNU General Public License
428 +## along with this program; if not, write to the Free Software
429 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
431 +## Author: Dan Walsh
438 +from semanagePage import *;
445 + def __init__(self, scontext):
446 + self.scontext = scontext
447 + con=scontext.split(":")
455 + return self.scontext
460 +PROGNAME="policycoreutils"
463 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
464 +gettext.textdomain(PROGNAME)
466 + gettext.install(PROGNAME,
467 + localedir="/usr/share/locale",
472 + __builtin__.__dict__['_'] = unicode
475 +class fcontextPage(semanagePage):
476 + def __init__(self, xml):
477 + semanagePage.__init__(self, xml, "fcontext", _("File Labeling"))
478 + self.fcontextFilter = xml.get_widget("fcontextFilterEntry")
479 + self.fcontextFilter.connect("focus_out_event", self.filter_changed)
480 + self.fcontextFilter.connect("activate", self.filter_changed)
482 + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
483 + self.view = xml.get_widget("fcontextView")
484 + self.view.set_model(self.store)
485 + self.view.set_search_equal_func(self.search)
487 + col = gtk.TreeViewColumn(_("File\nSpecification"), gtk.CellRendererText(), text=SPEC_COL)
488 + col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
489 + col.set_fixed_width(250)
491 + col.set_sort_column_id(SPEC_COL)
492 + col.set_resizable(True)
493 + self.view.append_column(col)
494 + col = gtk.TreeViewColumn(_("Selinux\nFile Type"), gtk.CellRendererText(), text=TYPE_COL)
496 + col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
497 + col.set_fixed_width(250)
498 + col.set_sort_column_id(TYPE_COL)
499 + col.set_resizable(True)
500 + self.view.append_column(col)
501 + col = gtk.TreeViewColumn(_("File\nType"), gtk.CellRendererText(), text=2)
502 + col.set_sort_column_id(FTYPE_COL)
503 + col.set_resizable(True)
504 + self.view.append_column(col)
506 + self.store.set_sort_column_id(SPEC_COL, gtk.SORT_ASCENDING)
508 + self.fcontextEntry = xml.get_widget("fcontextEntry")
509 + self.fcontextFileTypeCombo = xml.get_widget("fcontextFileTypeCombo")
510 + liststore=self.fcontextFileTypeCombo.get_model()
511 + for k in seobject.file_types:
512 + if len(k) > 0 and k[0] != '-':
513 + iter=liststore.append()
514 + liststore.set_value(iter, 0, k)
515 + iter = liststore.get_iter_first()
516 + self.fcontextFileTypeCombo.set_active_iter(iter)
517 + self.fcontextTypeEntry = xml.get_widget("fcontextTypeEntry")
518 + self.fcontextMLSEntry = xml.get_widget("fcontextMLSEntry")
520 + def match(self, fcon_dict, k, filter):
527 + for con in fcon_dict[k]:
535 + def load(self, filter=""):
537 + self.fcontext=seobject.fcontextRecords()
539 + fcon_dict=self.fcontext.get_all(self.local)
540 + keys = fcon_dict.keys()
543 + if not self.match(fcon_dict, k, filter):
545 + iter=self.store.append()
546 + self.store.set_value(iter, SPEC_COL, k[0])
547 + self.store.set_value(iter, FTYPE_COL, k[1])
549 + rec="%s:%s" % (fcon_dict[k][2], seobject.translate(fcon_dict[k][3],False))
552 + self.store.set_value(iter, TYPE_COL, rec)
553 + self.view.get_selection().select_path ((0,))
555 + def filter_changed(self, *arg):
556 + filter = arg[0].get_text()
557 + if filter != self.filter:
560 + def dialogInit(self):
561 + store, iter = self.view.get_selection().get_selected()
562 + self.fcontextEntry.set_text(store.get_value(iter, SPEC_COL))
563 + self.fcontextEntry.set_sensitive(False)
564 + scontext = store.get_value(iter, TYPE_COL)
565 + scon=context(scontext)
566 + self.fcontextTypeEntry.set_text(scon.type)
567 + self.fcontextMLSEntry.set_text(scon.mls)
568 + type=store.get_value(iter, FTYPE_COL)
569 + liststore=self.fcontextFileTypeCombo.get_model()
570 + iter = liststore.get_iter_first()
571 + while iter != None and liststore.get_value(iter,0) != type:
572 + iter = liststore.iter_next(iter)
574 + self.fcontextFileTypeCombo.set_active_iter(iter)
575 + self.fcontextFileTypeCombo.set_sensitive(False)
577 + def dialogClear(self):
578 + self.fcontextEntry.set_text("")
579 + self.fcontextEntry.set_sensitive(True)
580 + self.fcontextFileTypeCombo.set_sensitive(True)
581 + self.fcontextTypeEntry.set_text("")
582 + self.fcontextMLSEntry.set_text("s0")
585 + store, iter = self.view.get_selection().get_selected()
587 + fspec=store.get_value(iter, SPEC_COL)
588 + ftype=store.get_value(iter, FTYPE_COL)
590 + (rc, out) = commands.getstatusoutput("semanage fcontext -d -f '%s' '%s'" % (ftype, fspec))
594 + return self.error(out)
596 + self.view.get_selection().select_path ((0,))
597 + except ValueError, e:
598 + self.error(e.args[0])
601 + ftype=["", "--", "-d", "-c", "-b", "-s", "-l", "-p" ]
602 + fspec=self.fcontextEntry.get_text().strip()
603 + type=self.fcontextTypeEntry.get_text().strip()
604 + mls=self.fcontextMLSEntry.get_text().strip()
605 + list_model=self.fcontextFileTypeCombo.get_model()
606 + active = self.fcontextFileTypeCombo.get_active()
608 + (rc, out) = commands.getstatusoutput("semanage fcontext -a -t %s -r %s -f '%s' '%s'" % (type, mls, ftype[active], fspec))
614 + iter=self.store.append()
615 + self.store.set_value(iter, SPEC_COL, fspec)
616 + self.store.set_value(iter, FTYPE_COL, ftype)
617 + self.store.set_value(iter, TYPE_COL, "%s:%s" % (type, mls))
620 + fspec=self.fcontextEntry.get_text().strip()
621 + type=self.fcontextTypeEntry.get_text().strip()
622 + mls=self.fcontextMLSEntry.get_text().strip()
623 + list_model=self.fcontextFileTypeCombo.get_model()
624 + iter = self.fcontextFileTypeCombo.get_active_iter()
625 + ftype=list_model.get_value(iter,0)
627 + (rc, out) = commands.getstatusoutput("semanage fcontext -m -t %s -r %s -f '%s' '%s'" % (type, mls, ftype, fspec))
633 + store, iter = self.view.get_selection().get_selected()
634 + self.store.set_value(iter, SPEC_COL, fspec)
635 + self.store.set_value(iter, FTYPE_COL, ftype)
636 + self.store.set_value(iter, TYPE_COL, "%s:%s" % (type, mls))
637 diff -up policycoreutils-2.1.8/gui/html_util.py.gui policycoreutils-2.1.8/gui/html_util.py
638 --- policycoreutils-2.1.8/gui/html_util.py.gui 2011-11-07 15:12:01.894834226 -0500
639 +++ policycoreutils-2.1.8/gui/html_util.py 2011-11-07 15:12:01.894834226 -0500
641 +# Authors: John Dennis <jdennis@redhat.com>
643 +# Copyright (C) 2007 Red Hat, Inc.
645 +# This program is free software; you can redistribute it and/or modify
646 +# it under the terms of the GNU General Public License as published by
647 +# the Free Software Foundation; either version 2 of the License, or
648 +# (at your option) any later version.
650 +# This program is distributed in the hope that it will be useful,
651 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
652 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
653 +# GNU General Public License for more details.
655 +# You should have received a copy of the GNU General Public License
656 +# along with this program; if not, write to the Free Software
657 +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
670 +import formatter as Formatter
675 +#------------------------------------------------------------------------------
677 +class TextWriter(Formatter.DumbWriter):
678 + def __init__(self, file=None, maxcol=80, indent_width=4):
679 + Formatter.DumbWriter.__init__(self, file, maxcol)
680 + self.indent_level = 0
681 + self.indent_width = indent_width
684 + def _set_indent(self):
685 + self.indent_col = self.indent_level * self.indent_width
686 + self.indent = ' ' * self.indent_col
688 + def new_margin(self, margin, level):
689 + self.indent_level = level
692 + def send_label_data(self, data):
694 + if len(data) > self.indent_col:
695 + self.send_literal_data(data)
697 + offset = self.indent_col - len(data)
698 + self.send_literal_data(' ' * offset + data)
700 + def send_flowing_data(self, data):
701 + if not data: return
702 + atbreak = self.atbreak or data[0] in string.whitespace
704 + maxcol = self.maxcol
705 + write = self.file.write
709 + col = self.indent_col
710 + for word in data.split():
712 + if col + len(word) >= maxcol:
713 + write('\n' + self.indent)
714 + col = self.indent_col
719 + col = col + len(word)
722 + self.atbreak = data[-1] in string.whitespace
724 +class HTMLParserAnchor(htmllib.HTMLParser):
726 + def __init__(self, formatter, verbose=0):
727 + htmllib.HTMLParser.__init__(self, formatter, verbose)
729 + def anchor_bgn(self, href, name, type):
732 + def anchor_end(self):
734 + self.handle_data(' (%s) ' % self.anchor)
737 +#------------------------------------------------------------------------------
740 + if s is None: return None
741 + s = s.replace("&", "&") # Must be done first!
742 + s = s.replace("<", "<")
743 + s = s.replace(">", ">")
744 + s = s.replace("'", "'")
745 + s = s.replace('"', """)
749 +def unescape_html(s):
750 + if s is None: return None
753 + s = s.replace("<", "<")
754 + s = s.replace(">", ">")
755 + s = s.replace("'", "'")
756 + s = s.replace(""", '"')
757 + s = s.replace("&", "&") # Must be last
760 +def html_to_text(html, maxcol=80):
762 + buffer = StringIO.StringIO()
763 + formatter = Formatter.AbstractFormatter(TextWriter(buffer, maxcol))
764 + parser = HTMLParserAnchor(formatter)
767 + text = buffer.getvalue()
770 + except Exception, e:
771 + log_program.error('cannot convert html to text: %s' % e)
774 +def html_document(*body_components):
775 + '''Wrap the body components in a HTML document structure with a valid header.
776 + Accepts a variable number of arguments of of which canb be:
778 + * a sequences of strings (tuple or list).
779 + * a callable object taking no parameters and returning a string or sequence of strings.
781 + head = '<html>\n <head>\n <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n </head>\n <body>\n'
782 + tail = '\n </body>\n</html>'
786 + for body_component in body_components:
787 + if type(body_component) is StringTypes:
788 + doc += body_component
789 + elif type(body_component) in [TupleType, ListType]:
790 + for item in body_component:
792 + elif callable(body_component):
793 + result = body_component()
794 + if type(result) in [TupleType, ListType]:
795 + for item in result:
800 + doc += body_component
805 diff -up policycoreutils-2.1.8/gui/lockdown.glade.gui policycoreutils-2.1.8/gui/lockdown.glade
806 --- policycoreutils-2.1.8/gui/lockdown.glade.gui 2011-11-07 15:12:01.895834226 -0500
807 +++ policycoreutils-2.1.8/gui/lockdown.glade 2011-11-07 15:12:01.895834226 -0500
809 +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
810 +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
813 +<requires lib="gnome"/>
814 +<requires lib="bonobo"/>
816 +<widget class="GtkAboutDialog" id="aboutWindow">
817 + <property name="border_width">5</property>
818 + <property name="destroy_with_parent">False</property>
819 + <property name="name" translatable="yes">system-config-selinux</property>
820 + <property name="copyright" translatable="yes">Copyright (c)2006 Red Hat, Inc.
821 +Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com></property>
822 + <property name="wrap_license">False</property>
823 + <property name="authors">Daniel Walsh <dwalsh@redhat.com>
825 + <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
826 + <property name="logo">system-config-selinux.png</property>
829 +<widget class="GnomeApp" id="mainWindow">
830 + <property name="width_request">800</property>
831 + <property name="height_request">400</property>
832 + <property name="title" translatable="yes">SELinux Boolean Lockdown</property>
833 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
834 + <property name="window_position">GTK_WIN_POS_NONE</property>
835 + <property name="modal">False</property>
836 + <property name="resizable">True</property>
837 + <property name="destroy_with_parent">False</property>
838 + <property name="icon">system-config-selinux.png</property>
839 + <property name="decorated">True</property>
840 + <property name="skip_taskbar_hint">False</property>
841 + <property name="skip_pager_hint">False</property>
842 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
843 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
844 + <property name="focus_on_map">True</property>
845 + <property name="urgency_hint">False</property>
846 + <property name="enable_layout_config">True</property>
848 + <child internal-child="dock">
849 + <widget class="BonoboDock" id="bonobodock2">
850 + <property name="visible">True</property>
851 + <property name="allow_floating">True</property>
854 + <widget class="BonoboDockItem" id="bonobodockitem3">
855 + <property name="visible">True</property>
856 + <property name="shadow_type">GTK_SHADOW_NONE</property>
859 + <widget class="GtkMenuBar" id="menubar1">
860 + <property name="visible">True</property>
861 + <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
862 + <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
865 + <widget class="GtkMenuItem" id="file1">
866 + <property name="visible">True</property>
867 + <property name="stock_item">GNOMEUIINFO_MENU_FILE_TREE</property>
870 + <widget class="GtkMenu" id="file1_menu">
873 + <widget class="GtkImageMenuItem" id="forward_menu_item">
874 + <property name="visible">True</property>
875 + <property name="label" translatable="yes">_Forward</property>
876 + <property name="use_underline">True</property>
877 + <signal name="activate" handler="on_forward_clicked" last_modification_time="Thu, 24 Apr 2008 10:18:41 GMT"/>
878 + <accelerator key="f" modifiers="GDK_CONTROL_MASK" signal="activate"/>
880 + <child internal-child="image">
881 + <widget class="GtkImage" id="image46">
882 + <property name="visible">True</property>
883 + <property name="stock">gtk-media-next</property>
884 + <property name="icon_size">1</property>
885 + <property name="xalign">0.5</property>
886 + <property name="yalign">0.5</property>
887 + <property name="xpad">0</property>
888 + <property name="ypad">0</property>
895 + <widget class="GtkImageMenuItem" id="previous_menu_item">
896 + <property name="visible">True</property>
897 + <property name="label" translatable="yes">_Previous</property>
898 + <property name="use_underline">True</property>
899 + <signal name="activate" handler="on_previous_clicked" last_modification_time="Thu, 24 Apr 2008 10:18:41 GMT"/>
900 + <accelerator key="p" modifiers="GDK_CONTROL_MASK" signal="activate"/>
902 + <child internal-child="image">
903 + <widget class="GtkImage" id="image47">
904 + <property name="visible">True</property>
905 + <property name="stock">gtk-media-previous</property>
906 + <property name="icon_size">1</property>
907 + <property name="xalign">0.5</property>
908 + <property name="yalign">0.5</property>
909 + <property name="xpad">0</property>
910 + <property name="ypad">0</property>
917 + <widget class="GtkSeparatorMenuItem" id="separator1">
918 + <property name="visible">True</property>
923 + <widget class="GtkImageMenuItem" id="save_as2">
924 + <property name="visible">True</property>
925 + <property name="label" translatable="yes">Save As</property>
926 + <property name="use_underline">True</property>
927 + <signal name="activate" handler="on_save_clicked" last_modification_time="Thu, 03 Jul 2008 13:30:05 GMT"/>
928 + <accelerator key="s" modifiers="GDK_CONTROL_MASK" signal="activate"/>
930 + <child internal-child="image">
931 + <widget class="GtkImage" id="image48">
932 + <property name="visible">True</property>
933 + <property name="stock">gtk-save-as</property>
934 + <property name="icon_size">1</property>
935 + <property name="xalign">0.5</property>
936 + <property name="yalign">0.5</property>
937 + <property name="xpad">0</property>
938 + <property name="ypad">0</property>
945 + <widget class="GtkImageMenuItem" id="apply1">
946 + <property name="visible">True</property>
947 + <property name="label" translatable="yes">Apply</property>
948 + <property name="use_underline">True</property>
949 + <signal name="activate" handler="on_apply_clicked" last_modification_time="Thu, 03 Jul 2008 13:25:23 GMT"/>
950 + <accelerator key="a" modifiers="GDK_CONTROL_MASK" signal="activate"/>
952 + <child internal-child="image">
953 + <widget class="GtkImage" id="image49">
954 + <property name="visible">True</property>
955 + <property name="stock">gtk-apply</property>
956 + <property name="icon_size">1</property>
957 + <property name="xalign">0.5</property>
958 + <property name="yalign">0.5</property>
959 + <property name="xpad">0</property>
960 + <property name="ypad">0</property>
967 + <widget class="GtkImageMenuItem" id="cancel">
968 + <property name="visible">True</property>
969 + <property name="stock_item">GNOMEUIINFO_MENU_EXIT_ITEM</property>
970 + <signal name="activate" handler="on_cancel_clicked" last_modification_time="Thu, 24 Apr 2008 10:18:41 GMT"/>
979 + <widget class="GtkMenuItem" id="help1">
980 + <property name="visible">True</property>
981 + <property name="stock_item">GNOMEUIINFO_MENU_HELP_TREE</property>
984 + <widget class="GtkMenu" id="help1_menu">
987 + <widget class="GtkImageMenuItem" id="about">
988 + <property name="visible">True</property>
989 + <property name="stock_item">GNOMEUIINFO_MENU_ABOUT_ITEM</property>
990 + <signal name="activate" handler="on_about_activate" last_modification_time="Fri, 06 Oct 2006 13:58:02 GMT"/>
1001 + <property name="placement">BONOBO_DOCK_TOP</property>
1002 + <property name="band">0</property>
1003 + <property name="position">0</property>
1004 + <property name="offset">0</property>
1005 + <property name="behavior">BONOBO_DOCK_ITEM_BEH_EXCLUSIVE|BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL|BONOBO_DOCK_ITEM_BEH_LOCKED</property>
1010 + <widget class="GtkHPaned" id="hpaned1">
1011 + <property name="visible">True</property>
1012 + <property name="can_focus">True</property>
1013 + <property name="position">0</property>
1016 + <widget class="GtkFrame" id="frame1">
1017 + <property name="border_width">5</property>
1018 + <property name="visible">True</property>
1019 + <property name="label_xalign">0</property>
1020 + <property name="label_yalign">0.5</property>
1021 + <property name="shadow_type">GTK_SHADOW_NONE</property>
1024 + <widget class="GtkAlignment" id="alignment1">
1025 + <property name="visible">True</property>
1026 + <property name="xalign">0.5</property>
1027 + <property name="yalign">0.5</property>
1028 + <property name="xscale">1</property>
1029 + <property name="yscale">1</property>
1030 + <property name="top_padding">0</property>
1031 + <property name="bottom_padding">0</property>
1032 + <property name="left_padding">12</property>
1033 + <property name="right_padding">0</property>
1036 + <widget class="GtkScrolledWindow" id="scrolledwindow21">
1037 + <property name="visible">True</property>
1038 + <property name="can_focus">True</property>
1039 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
1040 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
1041 + <property name="shadow_type">GTK_SHADOW_NONE</property>
1042 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
1045 + <widget class="GtkTreeView" id="booleanView">
1046 + <property name="width_request">300</property>
1047 + <property name="visible">True</property>
1048 + <property name="tooltip" translatable="yes">Select Management Object</property>
1049 + <property name="can_focus">True</property>
1050 + <property name="headers_visible">False</property>
1051 + <property name="rules_hint">False</property>
1052 + <property name="reorderable">False</property>
1053 + <property name="enable_search">True</property>
1054 + <property name="fixed_height_mode">False</property>
1055 + <property name="hover_selection">False</property>
1056 + <property name="hover_expand">False</property>
1065 + <widget class="GtkLabel" id="label45">
1066 + <property name="visible">True</property>
1067 + <property name="label" translatable="yes"><b>Select:</b></property>
1068 + <property name="use_underline">False</property>
1069 + <property name="use_markup">True</property>
1070 + <property name="justify">GTK_JUSTIFY_LEFT</property>
1071 + <property name="wrap">False</property>
1072 + <property name="selectable">False</property>
1073 + <property name="xalign">0.5</property>
1074 + <property name="yalign">0.5</property>
1075 + <property name="xpad">0</property>
1076 + <property name="ypad">0</property>
1077 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1078 + <property name="width_chars">-1</property>
1079 + <property name="single_line_mode">False</property>
1080 + <property name="angle">0</property>
1083 + <property name="type">label_item</property>
1088 + <property name="shrink">False</property>
1089 + <property name="resize">False</property>
1094 + <widget class="GtkVBox" id="vbox1">
1095 + <property name="homogeneous">False</property>
1096 + <property name="spacing">0</property>
1099 + <widget class="GtkVBox" id="radio_vbox">
1100 + <property name="visible">True</property>
1101 + <property name="homogeneous">False</property>
1102 + <property name="spacing">0</property>
1105 + <widget class="GtkScrolledWindow" id="html_scrolledwindow">
1106 + <property name="visible">True</property>
1107 + <property name="can_focus">True</property>
1108 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
1109 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
1110 + <property name="shadow_type">GTK_SHADOW_NONE</property>
1111 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
1118 + <property name="padding">0</property>
1119 + <property name="expand">True</property>
1120 + <property name="fill">True</property>
1125 + <widget class="GtkHButtonBox" id="savebox">
1126 + <property name="visible">True</property>
1127 + <property name="layout_style">GTK_BUTTONBOX_END</property>
1128 + <property name="spacing">0</property>
1131 + <widget class="GtkButton" id="button4">
1132 + <property name="visible">True</property>
1133 + <property name="can_default">True</property>
1134 + <property name="can_focus">True</property>
1135 + <property name="label">gtk-apply</property>
1136 + <property name="use_stock">True</property>
1137 + <property name="relief">GTK_RELIEF_NORMAL</property>
1138 + <property name="focus_on_click">True</property>
1139 + <signal name="clicked" handler="on_apply_clicked" last_modification_time="Thu, 03 Jul 2008 12:39:08 GMT"/>
1144 + <widget class="GtkButton" id="savebutton">
1145 + <property name="visible">True</property>
1146 + <property name="can_default">True</property>
1147 + <property name="can_focus">True</property>
1148 + <property name="label">gtk-save-as</property>
1149 + <property name="use_stock">True</property>
1150 + <property name="relief">GTK_RELIEF_NORMAL</property>
1151 + <property name="focus_on_click">True</property>
1152 + <signal name="clicked" handler="on_save_clicked" last_modification_time="Thu, 03 Jul 2008 12:38:54 GMT"/>
1157 + <property name="padding">0</property>
1158 + <property name="expand">False</property>
1159 + <property name="fill">False</property>
1160 + <property name="pack_type">GTK_PACK_END</property>
1165 + <widget class="GtkHBox" id="radiobox">
1166 + <property name="homogeneous">True</property>
1167 + <property name="spacing">0</property>
1170 + <widget class="GtkRadioButton" id="enable_radiobutton">
1171 + <property name="visible">True</property>
1172 + <property name="can_focus">True</property>
1173 + <property name="relief">GTK_RELIEF_NORMAL</property>
1174 + <property name="focus_on_click">True</property>
1175 + <property name="active">False</property>
1176 + <property name="inconsistent">False</property>
1177 + <property name="draw_indicator">True</property>
1180 + <widget class="GtkAlignment" id="alignment2">
1181 + <property name="visible">True</property>
1182 + <property name="xalign">0.5</property>
1183 + <property name="yalign">0.5</property>
1184 + <property name="xscale">0</property>
1185 + <property name="yscale">0</property>
1186 + <property name="top_padding">0</property>
1187 + <property name="bottom_padding">0</property>
1188 + <property name="left_padding">0</property>
1189 + <property name="right_padding">0</property>
1192 + <widget class="GtkHBox" id="hbox15">
1193 + <property name="visible">True</property>
1194 + <property name="homogeneous">False</property>
1195 + <property name="spacing">2</property>
1198 + <widget class="GtkImage" id="image20">
1199 + <property name="visible">True</property>
1200 + <property name="stock">gtk-yes</property>
1201 + <property name="icon_size">4</property>
1202 + <property name="xalign">0.5</property>
1203 + <property name="yalign">0.5</property>
1204 + <property name="xpad">0</property>
1205 + <property name="ypad">0</property>
1208 + <property name="padding">0</property>
1209 + <property name="expand">False</property>
1210 + <property name="fill">False</property>
1215 + <widget class="GtkLabel" id="button1">
1216 + <property name="label" translatable="yes">Enable</property>
1217 + <property name="use_underline">True</property>
1218 + <property name="use_markup">False</property>
1219 + <property name="justify">GTK_JUSTIFY_LEFT</property>
1220 + <property name="wrap">False</property>
1221 + <property name="selectable">False</property>
1222 + <property name="xalign">0.5</property>
1223 + <property name="yalign">0.5</property>
1224 + <property name="xpad">0</property>
1225 + <property name="ypad">0</property>
1226 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1227 + <property name="width_chars">-1</property>
1228 + <property name="single_line_mode">False</property>
1229 + <property name="angle">0</property>
1232 + <property name="padding">0</property>
1233 + <property name="expand">False</property>
1234 + <property name="fill">False</property>
1243 + <property name="padding">0</property>
1244 + <property name="expand">False</property>
1245 + <property name="fill">False</property>
1250 + <widget class="GtkRadioButton" id="disable_radiobutton">
1251 + <property name="visible">True</property>
1252 + <property name="can_focus">True</property>
1253 + <property name="relief">GTK_RELIEF_NORMAL</property>
1254 + <property name="focus_on_click">True</property>
1255 + <property name="active">False</property>
1256 + <property name="inconsistent">False</property>
1257 + <property name="draw_indicator">True</property>
1258 + <property name="group">enable_radiobutton</property>
1261 + <widget class="GtkAlignment" id="alignment3">
1262 + <property name="visible">True</property>
1263 + <property name="xalign">0.5</property>
1264 + <property name="yalign">0.5</property>
1265 + <property name="xscale">0</property>
1266 + <property name="yscale">0</property>
1267 + <property name="top_padding">0</property>
1268 + <property name="bottom_padding">0</property>
1269 + <property name="left_padding">0</property>
1270 + <property name="right_padding">0</property>
1273 + <widget class="GtkHBox" id="hbox16">
1274 + <property name="visible">True</property>
1275 + <property name="homogeneous">False</property>
1276 + <property name="spacing">2</property>
1279 + <widget class="GtkImage" id="image21">
1280 + <property name="visible">True</property>
1281 + <property name="stock">gtk-no</property>
1282 + <property name="icon_size">4</property>
1283 + <property name="xalign">0.5</property>
1284 + <property name="yalign">0.5</property>
1285 + <property name="xpad">0</property>
1286 + <property name="ypad">0</property>
1289 + <property name="padding">0</property>
1290 + <property name="expand">False</property>
1291 + <property name="fill">False</property>
1296 + <widget class="GtkLabel" id="label60">
1297 + <property name="visible">True</property>
1298 + <property name="label" translatable="yes">Disable</property>
1299 + <property name="use_underline">True</property>
1300 + <property name="use_markup">False</property>
1301 + <property name="justify">GTK_JUSTIFY_LEFT</property>
1302 + <property name="wrap">False</property>
1303 + <property name="selectable">False</property>
1304 + <property name="xalign">0.5</property>
1305 + <property name="yalign">0.5</property>
1306 + <property name="xpad">0</property>
1307 + <property name="ypad">0</property>
1308 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1309 + <property name="width_chars">-1</property>
1310 + <property name="single_line_mode">False</property>
1311 + <property name="angle">0</property>
1314 + <property name="padding">0</property>
1315 + <property name="expand">False</property>
1316 + <property name="fill">False</property>
1325 + <property name="padding">0</property>
1326 + <property name="expand">False</property>
1327 + <property name="fill">False</property>
1332 + <widget class="GtkRadioButton" id="default_radiobutton">
1333 + <property name="visible">True</property>
1334 + <property name="can_focus">True</property>
1335 + <property name="relief">GTK_RELIEF_NORMAL</property>
1336 + <property name="focus_on_click">True</property>
1337 + <property name="active">False</property>
1338 + <property name="inconsistent">False</property>
1339 + <property name="draw_indicator">True</property>
1340 + <property name="group">enable_radiobutton</property>
1343 + <widget class="GtkAlignment" id="alignment4">
1344 + <property name="visible">True</property>
1345 + <property name="xalign">0.5</property>
1346 + <property name="yalign">0.5</property>
1347 + <property name="xscale">0</property>
1348 + <property name="yscale">0</property>
1349 + <property name="top_padding">0</property>
1350 + <property name="bottom_padding">0</property>
1351 + <property name="left_padding">0</property>
1352 + <property name="right_padding">0</property>
1355 + <widget class="GtkHBox" id="hbox17">
1356 + <property name="visible">True</property>
1357 + <property name="homogeneous">False</property>
1358 + <property name="spacing">2</property>
1361 + <widget class="GtkImage" id="image22">
1362 + <property name="visible">True</property>
1363 + <property name="stock">gtk-undo</property>
1364 + <property name="icon_size">4</property>
1365 + <property name="xalign">0.5</property>
1366 + <property name="yalign">0.5</property>
1367 + <property name="xpad">0</property>
1368 + <property name="ypad">0</property>
1371 + <property name="padding">0</property>
1372 + <property name="expand">False</property>
1373 + <property name="fill">False</property>
1378 + <widget class="GtkLabel" id="label61">
1379 + <property name="visible">True</property>
1380 + <property name="label" translatable="yes">Default</property>
1381 + <property name="use_underline">True</property>
1382 + <property name="use_markup">False</property>
1383 + <property name="justify">GTK_JUSTIFY_LEFT</property>
1384 + <property name="wrap">False</property>
1385 + <property name="selectable">False</property>
1386 + <property name="xalign">0.5</property>
1387 + <property name="yalign">0.5</property>
1388 + <property name="xpad">0</property>
1389 + <property name="ypad">0</property>
1390 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
1391 + <property name="width_chars">-1</property>
1392 + <property name="single_line_mode">False</property>
1393 + <property name="angle">0</property>
1396 + <property name="padding">0</property>
1397 + <property name="expand">False</property>
1398 + <property name="fill">False</property>
1407 + <property name="padding">0</property>
1408 + <property name="expand">False</property>
1409 + <property name="fill">False</property>
1414 + <property name="padding">11</property>
1415 + <property name="expand">False</property>
1416 + <property name="fill">False</property>
1421 + <widget class="GtkHButtonBox" id="hbuttonbox4">
1422 + <property name="visible">True</property>
1423 + <property name="layout_style">GTK_BUTTONBOX_END</property>
1424 + <property name="spacing">0</property>
1427 + <widget class="GtkButton" id="cancelButton">
1428 + <property name="visible">True</property>
1429 + <property name="can_default">True</property>
1430 + <property name="can_focus">True</property>
1431 + <property name="label">gtk-quit</property>
1432 + <property name="use_stock">True</property>
1433 + <property name="relief">GTK_RELIEF_NORMAL</property>
1434 + <property name="focus_on_click">True</property>
1435 + <signal name="clicked" handler="on_cancel_clicked" last_modification_time="Thu, 24 Apr 2008 10:14:10 GMT"/>
1440 + <widget class="GtkButton" id="previousButton">
1441 + <property name="visible">True</property>
1442 + <property name="can_default">True</property>
1443 + <property name="can_focus">True</property>
1444 + <property name="label">gtk-media-previous</property>
1445 + <property name="use_stock">True</property>
1446 + <property name="relief">GTK_RELIEF_NORMAL</property>
1447 + <property name="focus_on_click">True</property>
1448 + <signal name="clicked" handler="on_previous_clicked" last_modification_time="Thu, 24 Apr 2008 10:14:23 GMT"/>
1453 + <widget class="GtkButton" id="forwardButton">
1454 + <property name="visible">True</property>
1455 + <property name="can_default">True</property>
1456 + <property name="can_focus">True</property>
1457 + <property name="label">gtk-media-forward</property>
1458 + <property name="use_stock">True</property>
1459 + <property name="relief">GTK_RELIEF_NORMAL</property>
1460 + <property name="focus_on_click">True</property>
1461 + <signal name="clicked" handler="on_forward_clicked" last_modification_time="Thu, 24 Apr 2008 10:14:38 GMT"/>
1466 + <property name="padding">0</property>
1467 + <property name="expand">False</property>
1468 + <property name="fill">False</property>
1473 + <property name="padding">0</property>
1474 + <property name="expand">True</property>
1475 + <property name="fill">True</property>
1480 + <property name="shrink">True</property>
1481 + <property name="resize">True</property>
1488 + <property name="padding">0</property>
1489 + <property name="expand">True</property>
1490 + <property name="fill">True</property>
1494 + <child internal-child="appbar">
1495 + <widget class="GnomeAppBar" id="appbar2">
1496 + <property name="visible">True</property>
1497 + <property name="has_progress">True</property>
1498 + <property name="has_status">True</property>
1501 + <property name="padding">0</property>
1502 + <property name="expand">True</property>
1503 + <property name="fill">True</property>
1508 +<widget class="GtkFileChooserDialog" id="filechooserdialog">
1509 + <property name="border_width">5</property>
1510 + <property name="tooltip" translatable="yes">Select file name to save boolean settings.</property>
1511 + <property name="action">GTK_FILE_CHOOSER_ACTION_SAVE</property>
1512 + <property name="local_only">True</property>
1513 + <property name="select_multiple">False</property>
1514 + <property name="show_hidden">False</property>
1515 + <property name="do_overwrite_confirmation">False</property>
1516 + <property name="title" translatable="yes">Save Boolean Configuration File</property>
1517 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
1518 + <property name="window_position">GTK_WIN_POS_MOUSE</property>
1519 + <property name="modal">False</property>
1520 + <property name="resizable">True</property>
1521 + <property name="destroy_with_parent">False</property>
1522 + <property name="decorated">True</property>
1523 + <property name="skip_taskbar_hint">False</property>
1524 + <property name="skip_pager_hint">False</property>
1525 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
1526 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
1527 + <property name="focus_on_map">True</property>
1528 + <property name="urgency_hint">False</property>
1530 + <child internal-child="vbox">
1531 + <widget class="GtkVBox" id="dialog-vbox1">
1532 + <property name="visible">True</property>
1533 + <property name="homogeneous">False</property>
1534 + <property name="spacing">2</property>
1536 + <child internal-child="action_area">
1537 + <widget class="GtkHButtonBox" id="dialog-action_area1">
1538 + <property name="visible">True</property>
1539 + <property name="layout_style">GTK_BUTTONBOX_END</property>
1542 + <widget class="GtkButton" id="button7">
1543 + <property name="visible">True</property>
1544 + <property name="can_default">True</property>
1545 + <property name="can_focus">True</property>
1546 + <property name="label">gtk-cancel</property>
1547 + <property name="use_stock">True</property>
1548 + <property name="relief">GTK_RELIEF_NORMAL</property>
1549 + <property name="focus_on_click">True</property>
1550 + <property name="response_id">-6</property>
1555 + <widget class="GtkButton" id="button8">
1556 + <property name="visible">True</property>
1557 + <property name="can_default">True</property>
1558 + <property name="has_default">True</property>
1559 + <property name="can_focus">True</property>
1560 + <property name="label">gtk-save</property>
1561 + <property name="use_stock">True</property>
1562 + <property name="relief">GTK_RELIEF_NORMAL</property>
1563 + <property name="focus_on_click">True</property>
1564 + <property name="response_id">-5</property>
1569 + <property name="padding">0</property>
1570 + <property name="expand">False</property>
1571 + <property name="fill">True</property>
1572 + <property name="pack_type">GTK_PACK_END</property>
1580 diff -up policycoreutils-2.1.8/gui/lockdown.gladep.gui policycoreutils-2.1.8/gui/lockdown.gladep
1581 --- policycoreutils-2.1.8/gui/lockdown.gladep.gui 2011-11-07 15:12:01.896834226 -0500
1582 +++ policycoreutils-2.1.8/gui/lockdown.gladep 2011-11-07 15:12:01.896834226 -0500
1584 +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
1585 +<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
1589 + <program_name></program_name>
1591 diff -up policycoreutils-2.1.8/gui/lockdown.py.gui policycoreutils-2.1.8/gui/lockdown.py
1592 --- policycoreutils-2.1.8/gui/lockdown.py.gui 2011-11-07 15:12:01.897834227 -0500
1593 +++ policycoreutils-2.1.8/gui/lockdown.py 2011-11-07 15:12:01.897834227 -0500
1597 +# lockdown.py - GUI for Booleans page in system-config-securitylevel
1599 +# Dan Walsh <dwalsh@redhat.com>
1601 +# Copyright 2008 Red Hat, Inc.
1603 +# This program is free software; you can redistribute it and/or modify
1604 +# it under the terms of the GNU General Public License as published by
1605 +# the Free Software Foundation; either version 2 of the License, or
1606 +# (at your option) any later version.
1608 +# This program is distributed in the hope that it will be useful,
1609 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
1610 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1611 +# GNU General Public License for more details.
1613 +# You should have received a copy of the GNU General Public License
1614 +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
1630 +from html_util import *
1632 +gnome.program_init("SELinux Boolean Lockdown Tool", "5")
1634 +INSTALLPATH='/usr/share/system-config-selinux'
1635 +sys.path.append(INSTALLPATH)
1640 +PROGNAME="policycoreutils"
1643 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
1644 +gettext.textdomain(PROGNAME)
1646 + gettext.install(PROGNAME,
1647 + localedir="/usr/share/locale",
1649 + codeset = 'utf-8')
1651 + import __builtin__
1652 + __builtin__.__dict__['_'] = unicode
1654 +from glob import fnmatch
1656 +STATUS=(_("Disable"), _("Enable"), _("Default"))
1662 + while gtk.events_pending():
1663 + gtk.main_iteration()
1666 + return '<td>%s</td>' % val
1668 +tr_fmt = '<tr>%s</tr>\n'
1673 +## Pull in the Glade file
1675 +if os.access("system-config-selinux.glade", os.F_OK):
1676 + xml = gtk.glade.XML ("lockdown.glade", domain=PROGNAME)
1678 + xml = gtk.glade.XML ("/usr/share/system-config-selinux/lockdown.glade", domain=PROGNAME)
1680 +class booleanWindow:
1681 + def __init__(self):
1684 + xml.signal_connect("on_cancel_clicked", self.cancel)
1685 + xml.signal_connect("on_forward_clicked", self.forward)
1686 + xml.signal_connect("on_previous_clicked", self.previous)
1687 + xml.signal_connect("on_save_clicked", self.save)
1688 + xml.signal_connect("on_apply_clicked", self.apply)
1690 + self.mainWindow = self.xml.get_widget("mainWindow")
1691 + self.forwardbutton = self.xml.get_widget("forwardButton")
1692 + self.window = self.xml.get_widget("mainWindow").get_root_window()
1693 + self.busy_cursor = gtk.gdk.Cursor(gtk.gdk.WATCH)
1694 + self.ready_cursor = gtk.gdk.Cursor(gtk.gdk.LEFT_PTR)
1695 + self.radiobox = self.xml.get_widget("radiobox")
1696 + self.savebox = self.xml.get_widget("savebox")
1697 + self.file_dialog = self.xml.get_widget("filechooserdialog")
1698 + self.vbox = self.xml.get_widget("vbox")
1699 + self.enable_radiobutton = self.xml.get_widget("enable_radiobutton")
1700 + self.enable_radiobutton.connect("toggled", self.toggled)
1701 + self.disable_radiobutton = self.xml.get_widget("disable_radiobutton")
1702 + self.disable_radiobutton.connect("toggled", self.toggled)
1703 + self.default_radiobutton = self.xml.get_widget("default_radiobutton")
1704 + self.default_radiobutton.connect("toggled", self.toggled)
1705 + self.html_scrolledwindow = self.xml.get_widget("html_scrolledwindow")
1706 + self.view = xml.get_widget("booleanView")
1707 + self.view.get_selection().connect("changed", self.itemSelected)
1709 + self.store = gtk.TreeStore(gobject.TYPE_STRING)
1710 + self.view.set_model(self.store)
1712 + col = gtk.TreeViewColumn("Boolean", gtk.CellRendererText(), text=BOOLEAN)
1713 + col.set_sort_column_id(BOOLEAN)
1714 + col.set_resizable(True)
1715 + self.view.append_column(col)
1717 + self.html_view = self.create_htmlview(self.html_scrolledwindow)
1719 + self.view.get_selection().select_path ((0,))
1721 + def create_htmlview(self, container):
1722 + view = webkit.WebView()
1723 + container.add(view)
1727 + self.window.set_cursor(self.busy_cursor)
1731 + self.window.set_cursor(self.ready_cursor)
1735 + self.store.clear()
1736 + self.booleans = seobject.booleanRecords()
1737 + booleansList = self.booleans.get_all(0)
1738 + self.booldict = {}
1739 + for name in booleansList:
1740 + cat = self.booleans.get_category(name)
1741 + if cat not in self.booldict:
1742 + self.booldict[cat] = {}
1744 + rec = booleansList[name]
1745 + self.booldict[cat][name]= [rec[2], self.booleans.get_desc(name)]
1747 + cats = self.booldict.keys()
1750 + citer = self.store.append(None)
1751 + self.store.set_value(citer, BOOLEAN, "Begin")
1753 + citer = self.store.append(None)
1754 + self.store.set_value(citer, BOOLEAN, cat)
1755 + bools = self.booldict[cat].keys()
1756 + for bool in bools:
1757 + biter = self.store.append(citer)
1758 + self.store.set_value(biter, BOOLEAN, bool)
1759 + biter = self.store.append(citer)
1760 + self.store.set_value(biter, BOOLEAN, "Finish")
1761 + citer = self.store.append(None)
1762 + self.store.set_value(citer, BOOLEAN, "Finish")
1764 + def on_about_activate(self, args):
1765 + dlg = xml.get_widget ("aboutWindow")
1769 + def cancel(self, args):
1772 + def error(self, message):
1773 + dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR,
1774 + gtk.BUTTONS_CLOSE,
1776 + dlg.set_position(gtk.WIN_POS_MOUSE)
1783 + for c in self.booldict.keys():
1784 + for b in self.booldict[c]:
1785 + out += "%s=%s\n" % (b, self.booldict[c][b][0])
1788 + def save(self, args):
1789 + self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_SAVE)
1790 + rc = self.file_dialog.run()
1791 + self.file_dialog.hide()
1792 + if rc == gtk.RESPONSE_OK:
1794 + fd = open(self.file_dialog.get_filename(), "w")
1795 + fd.write(self.__out())
1798 + except IOError, e:
1801 + def apply(self, args):
1802 + fd = tempfile.NamedTemporaryFile(dir = "/var/lib/selinux")
1803 + fd.write(self.__out())
1806 + rc, err = commands.getstatusoutput("semanage boolean -m -F %s" % fd.name)
1812 + def forward(self, args):
1813 + selection = self.view.get_selection()
1814 + store, iter = selection.get_selected()
1815 + if self.store.iter_has_child(iter):
1816 + store, rows = selection.get_selected_rows()
1817 + self.view.expand_to_path(rows[0])
1818 + niter = self.store.iter_nth_child(iter, 0)
1820 + niter = store.iter_next(iter)
1823 + piter = self.store.iter_parent(iter)
1826 + niter = store.iter_next(piter)
1829 + selection.select_iter(niter)
1830 + store, rows = selection.get_selected_rows()
1831 + self.view.scroll_to_cell(rows[0])
1835 + def toggled(self, button):
1836 + if button.get_active() == False:
1838 + if self.cat == None:
1840 + if self.disable_radiobutton == button:
1841 + self.booldict[self.cat][self.name][0] = DISABLE
1842 + if self.enable_radiobutton == button:
1843 + self.booldict[self.cat][self.name][0] = ENABLE
1844 + if self.default_radiobutton == button:
1845 + self.booldict[self.cat][self.name][0] = DEFAULT
1847 + def previous(self, args):
1848 + selection = self.view.get_selection()
1849 + store, iter = selection.get_selected()
1850 + store, rows = selection.get_selected_rows()
1852 + if len(row) == 1 or self.store.iter_has_child(iter):
1856 + iter = self.store.get_iter((nrow,))
1857 + if self.store.iter_has_child(iter):
1858 + self.view.expand_to_path((nrow,))
1859 + n = store.iter_n_children(iter) -1
1860 + piter = store.iter_nth_child(iter, n)
1865 + piter = self.store.iter_parent(iter)
1869 + piter = self.store.get_iter((r0,r1))
1871 + selection.select_iter(piter)
1872 + store, rows = selection.get_selected_rows()
1873 + self.view.scroll_to_cell(rows[0])
1877 + def html_cat(self, cat):
1879 + row = td_fmt(_("<b>Boolean</b>")) + td_fmt(_("<b>Description</b>")) + td_fmt(_("<b>Status</b>"))
1880 + html += tr_fmt % row
1882 + for b in self.booldict[cat]:
1883 + row = td_fmt(b) + td_fmt(self.booleans.get_desc(b)) + td_fmt(STATUS[self.booldict[cat][b][0]])
1884 + html += tr_fmt % row
1887 + def html_table(self, title, body):
1888 + html = self.html_head(title)
1889 + html += '<table width="100%" cellspacing="1" cellpadding="2">\n'
1891 + html += '</table>'
1894 + def html_head(self, val):
1895 + # Wrap entire alert in one table
1896 + # 1st table: primary Information
1898 + html = '<b>%s</b>\n\n\n' % val
1901 + def html_all(self):
1903 + cats = self.booldict.keys()
1906 + html += self.html_table((_("Category: %s <br>") % cat), self.html_cat(cat))
1909 + def itemSelected(self, selection):
1910 + store, iter = selection.get_selected()
1914 + piter = self.store.iter_parent(iter)
1916 + self.cat = store.get_value(piter, BOOLEAN)
1920 + self.name = store.get_value(iter, BOOLEAN)
1924 + self.radiobox.hide()
1925 + self.savebox.hide()
1927 + if self.name == _("Begin"):
1928 + html += self.html_head(_("Welcome to the SELinux Lockdown Tool.<br> <br>This tool can be used to lockdown SELinux booleans.The tool will generate a configuration file which can be used to lockdown this system or other SELinux systems.<br>"))
1929 + html += self.html_all()
1931 + if self.name == _("Finish"):
1932 + if self.cat != None:
1933 + html += self.html_head(_("Category %s booleans completed <br><br>") % self.cat)
1934 + html += self.html_table(_("Current settings:<br><br>"), self.html_cat(self.cat))
1936 + html += self.html_head(_("Finish: <br><br>"))
1937 + html += self.html_all()
1938 + self.savebox.show()
1940 + if self.store.iter_has_child(iter):
1941 + html += self.html_table(_("Category: %s<br><br>Current Settings<br><br>") % self.name, self.html_cat(self.name))
1943 + self.radiobox.show()
1944 + html += self.html_table(_("Boolean: %s<br><br>") % self.name, tr_fmt % td_fmt(self.booleans.get_desc(self.name)))
1945 + if self.booldict[self.cat][self.name][0] == ENABLE:
1946 + self.enable_radiobutton.set_active(True)
1947 + if self.booldict[self.cat][self.name][0] == DISABLE:
1948 + self.disable_radiobutton.set_active(True)
1949 + if self.booldict[self.cat][self.name][0] == DEFAULT:
1950 + self.default_radiobutton.set_active(True)
1951 + html_doc= html_document(html)
1953 + self.html_view.load_html_string(html, "")
1955 + def stand_alone(self):
1956 + desktopName = _("Lockdown SELinux Booleans")
1958 + self.mainWindow.connect("destroy", self.cancel)
1960 + self.mainWindow.show_all()
1961 + self.radiobox.hide()
1962 + self.savebox.hide()
1965 +if __name__ == "__main__":
1966 + signal.signal (signal.SIGINT, signal.SIG_DFL)
1968 + app = booleanWindow()
1970 diff -up policycoreutils-2.1.8/gui/loginsPage.py.gui policycoreutils-2.1.8/gui/loginsPage.py
1971 --- policycoreutils-2.1.8/gui/loginsPage.py.gui 2011-11-07 15:12:01.898834228 -0500
1972 +++ policycoreutils-2.1.8/gui/loginsPage.py 2011-11-07 15:12:01.898834228 -0500
1974 +## loginsPage.py - show selinux mappings
1975 +## Copyright (C) 2006 Red Hat, Inc.
1977 +## This program is free software; you can redistribute it and/or modify
1978 +## it under the terms of the GNU General Public License as published by
1979 +## the Free Software Foundation; either version 2 of the License, or
1980 +## (at your option) any later version.
1982 +## This program is distributed in the hope that it will be useful,
1983 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
1984 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1985 +## GNU General Public License for more details.
1987 +## You should have received a copy of the GNU General Public License
1988 +## along with this program; if not, write to the Free Software
1989 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
1991 +## Author: Dan Walsh
2000 +from semanagePage import *;
2005 +PROGNAME="policycoreutils"
2007 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
2008 +gettext.textdomain(PROGNAME)
2010 + gettext.install(PROGNAME,
2011 + localedir="/usr/share/locale",
2013 + codeset = 'utf-8')
2015 + import __builtin__
2016 + __builtin__.__dict__['_'] = unicode
2018 +class loginsPage(semanagePage):
2019 + def __init__(self, xml):
2020 + self.firstTime = False
2021 + semanagePage.__init__(self, xml, "logins", _("User Mapping"))
2022 + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
2023 + self.view.set_model(self.store)
2024 + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
2025 + col = gtk.TreeViewColumn(_("Login\nName"), gtk.CellRendererText(), text = 0)
2026 + col.set_sort_column_id(0)
2027 + col.set_resizable(True)
2028 + self.view.append_column(col)
2029 + col = gtk.TreeViewColumn(_("SELinux\nUser"), gtk.CellRendererText(), text = 1)
2030 + col.set_resizable(True)
2031 + self.view.append_column(col)
2032 + col = gtk.TreeViewColumn(_("MLS/\nMCS Range"), gtk.CellRendererText(), text = 2)
2033 + col.set_resizable(True)
2034 + self.view.append_column(col)
2036 + self.loginsNameEntry = xml.get_widget("loginsNameEntry")
2037 + self.loginsSelinuxUserCombo = xml.get_widget("loginsSelinuxUserCombo")
2038 + self.loginsMLSEntry = xml.get_widget("loginsMLSEntry")
2040 + def load(self, filter = ""):
2041 + self.filter=filter
2042 + self.login = seobject.loginRecords()
2043 + dict = self.login.get_all(0)
2044 + keys = dict.keys()
2046 + self.store.clear()
2048 + range = seobject.translate(dict[k][1])
2049 + if not (self.match(k, filter) or self.match(dict[k][0], filter) or self.match(range, filter)):
2051 + iter = self.store.append()
2052 + self.store.set_value(iter, 0, k)
2053 + self.store.set_value(iter, 1, dict[k][0])
2054 + self.store.set_value(iter, 2, range)
2055 + self.view.get_selection().select_path ((0,))
2057 + def __dialogSetup(self):
2058 + if self.firstTime == True:
2060 + self.firstTime = True
2061 + liststore = gtk.ListStore(gobject.TYPE_STRING)
2062 + self.loginsSelinuxUserCombo.set_model(liststore)
2063 + cell = gtk.CellRendererText()
2064 + self.loginsSelinuxUserCombo.pack_start(cell, True)
2065 + self.loginsSelinuxUserCombo.add_attribute(cell, 'text', 0)
2067 + selusers = seobject.seluserRecords().get_all(0)
2068 + keys = selusers.keys()
2071 + if k != "system_u":
2072 + self.loginsSelinuxUserCombo.append_text(k)
2074 + iter = liststore.get_iter_first()
2075 + while liststore.get_value(iter,0) != "user_u":
2076 + iter = liststore.iter_next(iter)
2077 + self.loginsSelinuxUserCombo.set_active_iter(iter)
2079 + def dialogInit(self):
2080 + self.__dialogSetup()
2081 + store, iter = self.view.get_selection().get_selected()
2082 + self.loginsNameEntry.set_text(store.get_value(iter, 0))
2083 + self.loginsNameEntry.set_sensitive(False)
2085 + self.loginsMLSEntry.set_text(store.get_value(iter, 2))
2086 + seuser = store.get_value(iter, 1)
2087 + liststore = self.loginsSelinuxUserCombo.get_model()
2088 + iter = liststore.get_iter_first()
2089 + while iter != None and liststore.get_value(iter,0) != seuser:
2090 + iter = liststore.iter_next(iter)
2092 + self.loginsSelinuxUserCombo.set_active_iter(iter)
2095 + def dialogClear(self):
2096 + self.__dialogSetup()
2097 + self.loginsNameEntry.set_text("")
2098 + self.loginsNameEntry.set_sensitive(True)
2099 + self.loginsMLSEntry.set_text("s0")
2102 + store, iter = self.view.get_selection().get_selected()
2104 + login=store.get_value(iter, 0)
2105 + if login == "root" or login == "__default__":
2106 + raise ValueError(_("Login '%s' is required") % login)
2109 + (rc, out) = commands.getstatusoutput("semanage login -d %s" % login)
2114 + store.remove(iter)
2115 + self.view.get_selection().select_path ((0,))
2116 + except ValueError, e:
2117 + self.error(e.args[0])
2120 + target=self.loginsNameEntry.get_text().strip()
2121 + serange=self.loginsMLSEntry.get_text().strip()
2124 + list_model=self.loginsSelinuxUserCombo.get_model()
2125 + iter = self.loginsSelinuxUserCombo.get_active_iter()
2126 + seuser = list_model.get_value(iter,0)
2128 + (rc, out) = commands.getstatusoutput("semanage login -a -s %s -r %s %s" % (seuser, serange, target))
2134 + iter = self.store.append()
2135 + self.store.set_value(iter, 0, target)
2136 + self.store.set_value(iter, 1, seuser)
2137 + self.store.set_value(iter, 2, seobject.translate(serange))
2140 + target=self.loginsNameEntry.get_text().strip()
2141 + serange=self.loginsMLSEntry.get_text().strip()
2144 + list_model = self.loginsSelinuxUserCombo.get_model()
2145 + iter = self.loginsSelinuxUserCombo.get_active_iter()
2146 + seuser=list_model.get_value(iter,0)
2148 + (rc, out) = commands.getstatusoutput("semanage login -m -s %s -r %s %s" % (seuser, serange, target))
2154 + store, iter = self.view.get_selection().get_selected()
2155 + self.store.set_value(iter, 0, target)
2156 + self.store.set_value(iter, 1, seuser)
2157 + self.store.set_value(iter, 2, seobject.translate(serange))
2159 diff -up policycoreutils-2.1.8/gui/Makefile.gui policycoreutils-2.1.8/gui/Makefile
2160 --- policycoreutils-2.1.8/gui/Makefile.gui 2011-11-07 15:12:01.898834228 -0500
2161 +++ policycoreutils-2.1.8/gui/Makefile 2011-11-07 15:12:01.898834228 -0500
2163 +# Installation directories.
2164 +PREFIX ?= ${DESTDIR}/usr
2165 +BINDIR ?= $(PREFIX)/bin
2166 +SHAREDIR ?= $(PREFIX)/share/system-config-selinux
2181 +system-config-selinux.glade \
2185 +all: $(TARGETS) system-config-selinux.py polgengui.py templates lockdown.py polgen.py
2188 + -mkdir -p $(SHAREDIR)/templates
2189 + -mkdir -p $(BINDIR)
2190 + install -m 755 system-config-selinux.py $(SHAREDIR)
2191 + install -m 755 polgengui.py $(SHAREDIR)
2192 + install -m 755 polgen.py $(SHAREDIR)
2193 + (cd $(BINDIR); ln -fs ../share/system-config-selinux/polgen.py sepolgen)
2194 + install -m 755 lockdown.py $(SHAREDIR)
2195 + install -m 644 $(TARGETS) $(SHAREDIR)
2196 + install -m 644 templates/*.py $(SHAREDIR)/templates/
2203 diff -up policycoreutils-2.1.8/gui/mappingsPage.py.gui policycoreutils-2.1.8/gui/mappingsPage.py
2204 --- policycoreutils-2.1.8/gui/mappingsPage.py.gui 2011-11-07 15:12:01.899834229 -0500
2205 +++ policycoreutils-2.1.8/gui/mappingsPage.py 2011-11-07 15:12:01.899834229 -0500
2207 +## mappingsPage.py - show selinux mappings
2208 +## Copyright (C) 2006 Red Hat, Inc.
2210 +## This program is free software; you can redistribute it and/or modify
2211 +## it under the terms of the GNU General Public License as published by
2212 +## the Free Software Foundation; either version 2 of the License, or
2213 +## (at your option) any later version.
2215 +## This program is distributed in the hope that it will be useful,
2216 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
2217 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2218 +## GNU General Public License for more details.
2220 +## You should have received a copy of the GNU General Public License
2221 +## along with this program; if not, write to the Free Software
2222 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
2224 +## Author: Dan Walsh
2236 +PROGNAME="policycoreutils"
2238 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
2239 +gettext.textdomain(PROGNAME)
2241 + gettext.install(PROGNAME,
2242 + localedir="/usr/share/locale",
2244 + codeset = 'utf-8')
2246 + import __builtin__
2247 + __builtin__.__dict__['_'] = unicode
2250 + def __init__(self, xml):
2252 + self.view = xml.get_widget("mappingsView")
2253 + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
2254 + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
2255 + self.view.set_model(self.store)
2256 + self.login = loginRecords()
2257 + dict = self.login.get_all(0)
2258 + keys = dict.keys()
2261 + print "%-25s %-25s %-25s" % (k, dict[k][0], translate(dict[k][1]))
2263 diff -up policycoreutils-2.1.8/gui/modulesPage.py.gui policycoreutils-2.1.8/gui/modulesPage.py
2264 --- policycoreutils-2.1.8/gui/modulesPage.py.gui 2011-11-07 15:12:01.899834229 -0500
2265 +++ policycoreutils-2.1.8/gui/modulesPage.py 2011-11-07 15:12:01.899834229 -0500
2267 +## modulesPage.py - show selinux mappings
2268 +## Copyright (C) 2006-2009 Red Hat, Inc.
2270 +## This program is free software; you can redistribute it and/or modify
2271 +## it under the terms of the GNU General Public License as published by
2272 +## the Free Software Foundation; either version 2 of the License, or
2273 +## (at your option) any later version.
2275 +## This program is distributed in the hope that it will be useful,
2276 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
2277 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2278 +## GNU General Public License for more details.
2280 +## You should have received a copy of the GNU General Public License
2281 +## along with this program; if not, write to the Free Software
2282 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
2284 +## Author: Dan Walsh
2294 +from semanagePage import *;
2299 +PROGNAME="policycoreutils"
2301 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
2302 +gettext.textdomain(PROGNAME)
2304 + gettext.install(PROGNAME,
2305 + localedir="/usr/share/locale",
2307 + codeset = 'utf-8')
2309 + import __builtin__
2310 + __builtin__.__dict__['_'] = unicode
2312 +class modulesPage(semanagePage):
2313 + def __init__(self, xml):
2314 + semanagePage.__init__(self, xml, "modules", _("Policy Module"))
2315 + self.module_filter = xml.get_widget("modulesFilterEntry")
2316 + self.module_filter.connect("focus_out_event", self.filter_changed)
2317 + self.module_filter.connect("activate", self.filter_changed)
2318 + self.audit_enabled = False
2320 + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
2321 + self.view.set_model(self.store)
2322 + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
2323 + col = gtk.TreeViewColumn(_("Module Name"), gtk.CellRendererText(), text = 0)
2324 + col.set_sort_column_id(0)
2325 + col.set_resizable(True)
2326 + self.view.append_column(col)
2327 + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
2328 + col = gtk.TreeViewColumn(_("Version"), gtk.CellRendererText(), text = 1)
2329 + self.enable_audit_button = xml.get_widget("enableAuditButton")
2330 + self.enable_audit_button.connect("clicked", self.enable_audit)
2331 + self.new_button = xml.get_widget("newModuleButton")
2332 + self.new_button.connect("clicked", self.new_module)
2333 + col.set_sort_column_id(1)
2334 + col.set_resizable(True)
2335 + self.view.append_column(col)
2336 + self.store.set_sort_func(1,self.sort_int, "")
2337 + status, self.policy_type = selinux.selinux_getpolicytype()
2341 + def sort_int(self, treemodel, iter1, iter2, user_data):
2343 + p1 = int(treemodel.get_value(iter1,1))
2344 + p2 = int(treemodel.get_value(iter1,1))
2353 + def load(self, filter=""):
2354 + self.filter=filter
2355 + self.store.clear()
2357 + fd=os.popen("semodule -l")
2358 + l = fd.readlines()
2361 + module, ver, newline = i.split('\t')
2362 + if not (self.match(module, filter) or self.match(ver, filter)):
2364 + iter = self.store.append()
2365 + self.store.set_value(iter, 0, module.strip())
2366 + self.store.set_value(iter, 1, ver.strip())
2369 + self.view.get_selection().select_path ((0,))
2372 + def new_module(self, args):
2374 + os.spawnl(os.P_NOWAIT, "/usr/share/system-config-selinux/polgengui.py")
2375 + except ValueError, e:
2376 + self.error(e.args[0])
2379 + store, iter = self.view.get_selection().get_selected()
2380 + module = store.get_value(iter, 0)
2383 + status, output = commands.getstatusoutput("semodule -r %s" % module)
2386 + self.error(output)
2388 + store.remove(iter)
2389 + self.view.get_selection().select_path ((0,))
2391 + except ValueError, e:
2392 + self.error(e.args[0])
2394 + def enable_audit(self, button):
2395 + self.audit_enabled = not self.audit_enabled
2398 + if self.audit_enabled:
2399 + status, output =commands.getstatusoutput("semodule -DB")
2400 + button.set_label(_("Disable Audit"))
2402 + status, output =commands.getstatusoutput("semodule -B")
2403 + button.set_label(_("Enable Audit"))
2407 + self.error(output)
2409 + except ValueError, e:
2410 + self.error(e.args[0])
2412 + def disable_audit(self, button):
2415 + status, output =commands.getstatusoutput("semodule -B")
2418 + self.error(output)
2420 + except ValueError, e:
2421 + self.error(e.args[0])
2423 + def propertiesDialog(self):
2427 + def addDialog(self):
2428 + dialog = gtk.FileChooserDialog(_("Load Policy Module"),
2430 + gtk.FILE_CHOOSER_ACTION_OPEN,
2431 + (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
2432 + gtk.STOCK_OPEN, gtk.RESPONSE_OK))
2433 + dialog.set_default_response(gtk.RESPONSE_OK)
2435 + filter = gtk.FileFilter()
2436 + filter.set_name("Policy Files")
2437 + filter.add_pattern("*.pp")
2438 + dialog.add_filter(filter)
2440 + response = dialog.run()
2441 + if response == gtk.RESPONSE_OK:
2442 + self.add(dialog.get_filename())
2445 + def add(self, file):
2448 + status, output =commands.getstatusoutput("semodule -i %s" % file)
2451 + self.error(output)
2455 + except ValueError, e:
2456 + self.error(e.args[0])
2457 diff -up policycoreutils-2.1.8/gui/polgen.glade.gui policycoreutils-2.1.8/gui/polgen.glade
2458 --- policycoreutils-2.1.8/gui/polgen.glade.gui 2011-11-07 15:12:01.902834231 -0500
2459 +++ policycoreutils-2.1.8/gui/polgen.glade 2011-11-07 15:12:01.903834231 -0500
2461 +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
2462 +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
2465 +<requires lib="gnome"/>
2467 +<widget class="GtkFileChooserDialog" id="filechooserdialog">
2468 + <property name="border_width">5</property>
2469 + <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
2470 + <property name="local_only">True</property>
2471 + <property name="select_multiple">True</property>
2472 + <property name="show_hidden">True</property>
2473 + <property name="do_overwrite_confirmation">False</property>
2474 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
2475 + <property name="window_position">GTK_WIN_POS_MOUSE</property>
2476 + <property name="modal">False</property>
2477 + <property name="resizable">True</property>
2478 + <property name="destroy_with_parent">False</property>
2479 + <property name="decorated">True</property>
2480 + <property name="skip_taskbar_hint">False</property>
2481 + <property name="skip_pager_hint">False</property>
2482 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
2483 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
2484 + <property name="focus_on_map">True</property>
2485 + <property name="urgency_hint">False</property>
2487 + <child internal-child="vbox">
2488 + <widget class="GtkVBox" id="dialog-vbox1">
2489 + <property name="visible">True</property>
2490 + <property name="homogeneous">False</property>
2491 + <property name="spacing">24</property>
2493 + <child internal-child="action_area">
2494 + <widget class="GtkHButtonBox" id="dialog-action_area1">
2495 + <property name="visible">True</property>
2496 + <property name="layout_style">GTK_BUTTONBOX_END</property>
2499 + <widget class="GtkButton" id="button5">
2500 + <property name="visible">True</property>
2501 + <property name="can_default">True</property>
2502 + <property name="can_focus">True</property>
2503 + <property name="label">gtk-cancel</property>
2504 + <property name="use_stock">True</property>
2505 + <property name="relief">GTK_RELIEF_NORMAL</property>
2506 + <property name="focus_on_click">True</property>
2507 + <property name="response_id">-6</property>
2512 + <widget class="GtkButton" id="button6">
2513 + <property name="visible">True</property>
2514 + <property name="can_default">True</property>
2515 + <property name="has_default">True</property>
2516 + <property name="can_focus">True</property>
2517 + <property name="label">gtk-add</property>
2518 + <property name="use_stock">True</property>
2519 + <property name="relief">GTK_RELIEF_NORMAL</property>
2520 + <property name="focus_on_click">True</property>
2521 + <property name="response_id">-5</property>
2526 + <property name="padding">0</property>
2527 + <property name="expand">False</property>
2528 + <property name="fill">True</property>
2529 + <property name="pack_type">GTK_PACK_END</property>
2536 +<widget class="GtkAboutDialog" id="about_dialog">
2537 + <property name="border_width">5</property>
2538 + <property name="destroy_with_parent">False</property>
2539 + <property name="name" translatable="yes">Polgen</property>
2540 + <property name="copyright" translatable="yes">Red Hat 2007</property>
2541 + <property name="license" translatable="yes">GPL</property>
2542 + <property name="wrap_license">False</property>
2543 + <property name="website">www.redhat.com</property>
2544 + <property name="authors">Daniel Walsh <dwalsh@redhat.com></property>
2545 + <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
2548 +<widget class="GtkWindow" id="main_window">
2549 + <property name="visible">True</property>
2550 + <property name="title" translatable="yes">SELinux Policy Generation Tool</property>
2551 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
2552 + <property name="window_position">GTK_WIN_POS_NONE</property>
2553 + <property name="modal">False</property>
2554 + <property name="resizable">True</property>
2555 + <property name="destroy_with_parent">False</property>
2556 + <property name="decorated">True</property>
2557 + <property name="skip_taskbar_hint">False</property>
2558 + <property name="skip_pager_hint">False</property>
2559 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
2560 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
2561 + <property name="focus_on_map">True</property>
2562 + <property name="urgency_hint">False</property>
2565 + <widget class="GtkVBox" id="vbox11">
2566 + <property name="visible">True</property>
2567 + <property name="homogeneous">False</property>
2568 + <property name="spacing">18</property>
2571 + <widget class="GtkNotebook" id="notebook">
2572 + <property name="visible">True</property>
2573 + <property name="show_tabs">False</property>
2574 + <property name="show_border">True</property>
2575 + <property name="tab_pos">GTK_POS_LEFT</property>
2576 + <property name="scrollable">False</property>
2577 + <property name="enable_popup">False</property>
2580 + <widget class="GtkVBox" id="vbox59">
2581 + <property name="visible">True</property>
2582 + <property name="homogeneous">False</property>
2583 + <property name="spacing">0</property>
2586 + <widget class="GtkLabel" id="select_type_label">
2587 + <property name="visible">True</property>
2588 + <property name="label" translatable="yes"><b>Select the policy type for the application or user role you want to confine:</b></property>
2589 + <property name="use_underline">False</property>
2590 + <property name="use_markup">True</property>
2591 + <property name="justify">GTK_JUSTIFY_LEFT</property>
2592 + <property name="wrap">False</property>
2593 + <property name="selectable">False</property>
2594 + <property name="xalign">0</property>
2595 + <property name="yalign">0.5</property>
2596 + <property name="xpad">0</property>
2597 + <property name="ypad">0</property>
2598 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2599 + <property name="width_chars">-1</property>
2600 + <property name="single_line_mode">False</property>
2601 + <property name="angle">0</property>
2604 + <property name="padding">5</property>
2605 + <property name="expand">False</property>
2606 + <property name="fill">False</property>
2611 + <widget class="GtkVBox" id="vbox58">
2612 + <property name="visible">True</property>
2613 + <property name="homogeneous">False</property>
2614 + <property name="spacing">0</property>
2617 + <widget class="GtkVBox" id="vbox14">
2618 + <property name="visible">True</property>
2619 + <property name="homogeneous">False</property>
2620 + <property name="spacing">0</property>
2623 + <widget class="GtkHBox" id="hbox16">
2624 + <property name="visible">True</property>
2625 + <property name="homogeneous">False</property>
2626 + <property name="spacing">12</property>
2629 + <widget class="GtkVBox" id="vbox18">
2630 + <property name="visible">True</property>
2631 + <property name="homogeneous">False</property>
2632 + <property name="spacing">6</property>
2635 + <widget class="GtkLabel" id="label41">
2636 + <property name="visible">True</property>
2637 + <property name="label" translatable="yes"><b>Applications</b></property>
2638 + <property name="use_underline">False</property>
2639 + <property name="use_markup">True</property>
2640 + <property name="justify">GTK_JUSTIFY_LEFT</property>
2641 + <property name="wrap">False</property>
2642 + <property name="selectable">False</property>
2643 + <property name="xalign">0</property>
2644 + <property name="yalign">0.5</property>
2645 + <property name="xpad">0</property>
2646 + <property name="ypad">0</property>
2647 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2648 + <property name="width_chars">-1</property>
2649 + <property name="single_line_mode">False</property>
2650 + <property name="angle">0</property>
2653 + <property name="padding">0</property>
2654 + <property name="expand">False</property>
2655 + <property name="fill">False</property>
2660 + <widget class="GtkHBox" id="hbox17">
2661 + <property name="visible">True</property>
2662 + <property name="homogeneous">False</property>
2663 + <property name="spacing">0</property>
2666 + <widget class="GtkLabel" id="label52">
2667 + <property name="visible">True</property>
2668 + <property name="label"> </property>
2669 + <property name="use_underline">False</property>
2670 + <property name="use_markup">False</property>
2671 + <property name="justify">GTK_JUSTIFY_LEFT</property>
2672 + <property name="wrap">False</property>
2673 + <property name="selectable">False</property>
2674 + <property name="xalign">0.5</property>
2675 + <property name="yalign">0.5</property>
2676 + <property name="xpad">0</property>
2677 + <property name="ypad">0</property>
2678 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2679 + <property name="width_chars">-1</property>
2680 + <property name="single_line_mode">False</property>
2681 + <property name="angle">0</property>
2684 + <property name="padding">0</property>
2685 + <property name="expand">False</property>
2686 + <property name="fill">False</property>
2691 + <widget class="GtkVBox" id="vbox6">
2692 + <property name="visible">True</property>
2693 + <property name="homogeneous">False</property>
2694 + <property name="spacing">6</property>
2697 + <widget class="GtkRadioButton" id="init_radiobutton">
2698 + <property name="visible">True</property>
2699 + <property name="tooltip" translatable="yes">Standard Init Daemon are daemons started on boot via init scripts. Usually requires a script in /etc/rc.d/init.d</property>
2700 + <property name="can_focus">True</property>
2701 + <property name="label" translatable="yes">Standard Init Daemon</property>
2702 + <property name="use_underline">True</property>
2703 + <property name="relief">GTK_RELIEF_NORMAL</property>
2704 + <property name="focus_on_click">True</property>
2705 + <property name="active">False</property>
2706 + <property name="inconsistent">False</property>
2707 + <property name="draw_indicator">True</property>
2710 + <property name="padding">0</property>
2711 + <property name="expand">False</property>
2712 + <property name="fill">False</property>
2717 + <widget class="GtkRadioButton" id="dbus_radiobutton">
2718 + <property name="visible">True</property>
2719 + <property name="tooltip" translatable="yes">Standard Init Daemon are daemons started on boot via init scripts. Usually requires a script in /etc/rc.d/init.d</property>
2720 + <property name="can_focus">True</property>
2721 + <property name="label" translatable="yes">DBUS System Daemon</property>
2722 + <property name="use_underline">True</property>
2723 + <property name="relief">GTK_RELIEF_NORMAL</property>
2724 + <property name="focus_on_click">True</property>
2725 + <property name="active">False</property>
2726 + <property name="inconsistent">False</property>
2727 + <property name="draw_indicator">True</property>
2728 + <property name="group">init_radiobutton</property>
2731 + <property name="padding">0</property>
2732 + <property name="expand">False</property>
2733 + <property name="fill">False</property>
2738 + <widget class="GtkRadioButton" id="inetd_radiobutton">
2739 + <property name="visible">True</property>
2740 + <property name="tooltip" translatable="yes">Internet Services Daemon are daemons started by xinetd</property>
2741 + <property name="can_focus">True</property>
2742 + <property name="label" translatable="yes">Internet Services Daemon (inetd)</property>
2743 + <property name="use_underline">True</property>
2744 + <property name="relief">GTK_RELIEF_NORMAL</property>
2745 + <property name="focus_on_click">True</property>
2746 + <property name="active">False</property>
2747 + <property name="inconsistent">False</property>
2748 + <property name="draw_indicator">True</property>
2749 + <property name="group">init_radiobutton</property>
2752 + <property name="padding">0</property>
2753 + <property name="expand">False</property>
2754 + <property name="fill">False</property>
2759 + <widget class="GtkRadioButton" id="cgi_radiobutton">
2760 + <property name="visible">True</property>
2761 + <property name="tooltip" translatable="yes">Web Applications/Script (CGI) CGI scripts started by the web server (apache)</property>
2762 + <property name="can_focus">True</property>
2763 + <property name="label" translatable="yes">Web Application/Script (CGI)</property>
2764 + <property name="use_underline">True</property>
2765 + <property name="relief">GTK_RELIEF_NORMAL</property>
2766 + <property name="focus_on_click">True</property>
2767 + <property name="active">False</property>
2768 + <property name="inconsistent">False</property>
2769 + <property name="draw_indicator">True</property>
2770 + <property name="group">init_radiobutton</property>
2773 + <property name="padding">0</property>
2774 + <property name="expand">False</property>
2775 + <property name="fill">False</property>
2780 + <widget class="GtkRadioButton" id="user_radiobutton">
2781 + <property name="visible">True</property>
2782 + <property name="tooltip" translatable="yes">User Application are any application that you would like to confine that is started by a user</property>
2783 + <property name="can_focus">True</property>
2784 + <property name="label" translatable="yes">User Application</property>
2785 + <property name="use_underline">True</property>
2786 + <property name="relief">GTK_RELIEF_NORMAL</property>
2787 + <property name="focus_on_click">True</property>
2788 + <property name="active">False</property>
2789 + <property name="inconsistent">False</property>
2790 + <property name="draw_indicator">True</property>
2791 + <property name="group">init_radiobutton</property>
2794 + <property name="padding">0</property>
2795 + <property name="expand">False</property>
2796 + <property name="fill">False</property>
2801 + <widget class="GtkRadioButton" id="sandbox_radiobutton">
2802 + <property name="visible">True</property>
2803 + <property name="tooltip" translatable="yes">User Application are any application that you would like to confine that is started by a user</property>
2804 + <property name="can_focus">True</property>
2805 + <property name="label" translatable="yes">Sandbox</property>
2806 + <property name="use_underline">True</property>
2807 + <property name="relief">GTK_RELIEF_NORMAL</property>
2808 + <property name="focus_on_click">True</property>
2809 + <property name="active">False</property>
2810 + <property name="inconsistent">False</property>
2811 + <property name="draw_indicator">True</property>
2812 + <property name="group">init_radiobutton</property>
2815 + <property name="padding">0</property>
2816 + <property name="expand">False</property>
2817 + <property name="fill">False</property>
2822 + <property name="padding">0</property>
2823 + <property name="expand">False</property>
2824 + <property name="fill">False</property>
2829 + <property name="padding">0</property>
2830 + <property name="expand">True</property>
2831 + <property name="fill">True</property>
2836 + <property name="padding">0</property>
2837 + <property name="expand">False</property>
2838 + <property name="fill">True</property>
2843 + <widget class="GtkVBox" id="vbox19">
2844 + <property name="visible">True</property>
2845 + <property name="homogeneous">False</property>
2846 + <property name="spacing">6</property>
2849 + <widget class="GtkLabel" id="label42">
2850 + <property name="visible">True</property>
2851 + <property name="label" translatable="yes"><b>Login Users</b></property>
2852 + <property name="use_underline">False</property>
2853 + <property name="use_markup">True</property>
2854 + <property name="justify">GTK_JUSTIFY_LEFT</property>
2855 + <property name="wrap">False</property>
2856 + <property name="selectable">False</property>
2857 + <property name="xalign">0</property>
2858 + <property name="yalign">0.5</property>
2859 + <property name="xpad">0</property>
2860 + <property name="ypad">0</property>
2861 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2862 + <property name="width_chars">-1</property>
2863 + <property name="single_line_mode">False</property>
2864 + <property name="angle">0</property>
2867 + <property name="padding">0</property>
2868 + <property name="expand">False</property>
2869 + <property name="fill">False</property>
2874 + <widget class="GtkHBox" id="hbox18">
2875 + <property name="visible">True</property>
2876 + <property name="homogeneous">False</property>
2877 + <property name="spacing">0</property>
2880 + <widget class="GtkLabel" id="label53">
2881 + <property name="visible">True</property>
2882 + <property name="label"> </property>
2883 + <property name="use_underline">False</property>
2884 + <property name="use_markup">False</property>
2885 + <property name="justify">GTK_JUSTIFY_LEFT</property>
2886 + <property name="wrap">False</property>
2887 + <property name="selectable">False</property>
2888 + <property name="xalign">0.5</property>
2889 + <property name="yalign">0.5</property>
2890 + <property name="xpad">0</property>
2891 + <property name="ypad">0</property>
2892 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
2893 + <property name="width_chars">-1</property>
2894 + <property name="single_line_mode">False</property>
2895 + <property name="angle">0</property>
2898 + <property name="padding">0</property>
2899 + <property name="expand">False</property>
2900 + <property name="fill">False</property>
2905 + <widget class="GtkVBox" id="vbox15">
2906 + <property name="visible">True</property>
2907 + <property name="homogeneous">False</property>
2908 + <property name="spacing">6</property>
2911 + <widget class="GtkRadioButton" id="existing_user_radiobutton">
2912 + <property name="visible">True</property>
2913 + <property name="tooltip" translatable="yes">Modify an existing login user record.</property>
2914 + <property name="can_focus">True</property>
2915 + <property name="label" translatable="yes">Existing User Roles</property>
2916 + <property name="use_underline">True</property>
2917 + <property name="relief">GTK_RELIEF_NORMAL</property>
2918 + <property name="focus_on_click">True</property>
2919 + <property name="active">False</property>
2920 + <property name="inconsistent">False</property>
2921 + <property name="draw_indicator">True</property>
2922 + <property name="group">init_radiobutton</property>
2925 + <property name="padding">0</property>
2926 + <property name="expand">False</property>
2927 + <property name="fill">False</property>
2932 + <widget class="GtkRadioButton" id="terminal_user_radiobutton">
2933 + <property name="visible">True</property>
2934 + <property name="tooltip" translatable="yes">This user will login to a machine only via a terminal or remote login. By default this user will have no setuid, no networking, no su, no sudo.</property>
2935 + <property name="can_focus">True</property>
2936 + <property name="label" translatable="yes">Minimal Terminal User Role</property>
2937 + <property name="use_underline">True</property>
2938 + <property name="relief">GTK_RELIEF_NORMAL</property>
2939 + <property name="focus_on_click">True</property>
2940 + <property name="active">False</property>
2941 + <property name="inconsistent">False</property>
2942 + <property name="draw_indicator">True</property>
2943 + <property name="group">init_radiobutton</property>
2946 + <property name="padding">0</property>
2947 + <property name="expand">False</property>
2948 + <property name="fill">False</property>
2953 + <widget class="GtkRadioButton" id="xwindows_user_radiobutton">
2954 + <property name="visible">True</property>
2955 + <property name="tooltip" translatable="yes">This user can login to a machine via X or terminal. By default this user will have no setuid, no networking, no sudo, no su</property>
2956 + <property name="can_focus">True</property>
2957 + <property name="label" translatable="yes">Minimal X Windows User Role</property>
2958 + <property name="use_underline">True</property>
2959 + <property name="relief">GTK_RELIEF_NORMAL</property>
2960 + <property name="focus_on_click">True</property>
2961 + <property name="active">False</property>
2962 + <property name="inconsistent">False</property>
2963 + <property name="draw_indicator">True</property>
2964 + <property name="group">init_radiobutton</property>
2967 + <property name="padding">0</property>
2968 + <property name="expand">False</property>
2969 + <property name="fill">False</property>
2974 + <widget class="GtkRadioButton" id="login_user_radiobutton">
2975 + <property name="visible">True</property>
2976 + <property name="tooltip" translatable="yes">User with full networking, no setuid applications without transition, no sudo, no su.</property>
2977 + <property name="can_focus">True</property>
2978 + <property name="label" translatable="yes">User Role</property>
2979 + <property name="use_underline">True</property>
2980 + <property name="relief">GTK_RELIEF_NORMAL</property>
2981 + <property name="focus_on_click">True</property>
2982 + <property name="active">False</property>
2983 + <property name="inconsistent">False</property>
2984 + <property name="draw_indicator">True</property>
2985 + <property name="group">init_radiobutton</property>
2988 + <property name="padding">0</property>
2989 + <property name="expand">False</property>
2990 + <property name="fill">False</property>
2995 + <widget class="GtkRadioButton" id="admin_user_radiobutton">
2996 + <property name="visible">True</property>
2997 + <property name="tooltip" translatable="yes">User with full networking, no setuid applications without transition, no su, can sudo to Root Administration Roles</property>
2998 + <property name="can_focus">True</property>
2999 + <property name="label" translatable="yes">Admin User Role</property>
3000 + <property name="use_underline">True</property>
3001 + <property name="relief">GTK_RELIEF_NORMAL</property>
3002 + <property name="focus_on_click">True</property>
3003 + <property name="active">False</property>
3004 + <property name="inconsistent">False</property>
3005 + <property name="draw_indicator">True</property>
3006 + <property name="group">init_radiobutton</property>
3009 + <property name="padding">0</property>
3010 + <property name="expand">False</property>
3011 + <property name="fill">False</property>
3016 + <property name="padding">0</property>
3017 + <property name="expand">True</property>
3018 + <property name="fill">False</property>
3023 + <property name="padding">0</property>
3024 + <property name="expand">True</property>
3025 + <property name="fill">True</property>
3030 + <property name="padding">0</property>
3031 + <property name="expand">False</property>
3032 + <property name="fill">True</property>
3037 + <widget class="GtkVBox" id="vbox20">
3038 + <property name="visible">True</property>
3039 + <property name="homogeneous">False</property>
3040 + <property name="spacing">6</property>
3043 + <widget class="GtkLabel" id="label50">
3044 + <property name="visible">True</property>
3045 + <property name="label" translatable="yes"><b>Root Users</b></property>
3046 + <property name="use_underline">False</property>
3047 + <property name="use_markup">True</property>
3048 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3049 + <property name="wrap">False</property>
3050 + <property name="selectable">False</property>
3051 + <property name="xalign">0</property>
3052 + <property name="yalign">0.5</property>
3053 + <property name="xpad">0</property>
3054 + <property name="ypad">0</property>
3055 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3056 + <property name="width_chars">-1</property>
3057 + <property name="single_line_mode">False</property>
3058 + <property name="angle">0</property>
3061 + <property name="padding">0</property>
3062 + <property name="expand">False</property>
3063 + <property name="fill">False</property>
3068 + <widget class="GtkHBox" id="hbox19">
3069 + <property name="visible">True</property>
3070 + <property name="homogeneous">False</property>
3071 + <property name="spacing">0</property>
3074 + <widget class="GtkLabel" id="label54">
3075 + <property name="visible">True</property>
3076 + <property name="label"> </property>
3077 + <property name="use_underline">False</property>
3078 + <property name="use_markup">False</property>
3079 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3080 + <property name="wrap">False</property>
3081 + <property name="selectable">False</property>
3082 + <property name="xalign">0.5</property>
3083 + <property name="yalign">0.5</property>
3084 + <property name="xpad">0</property>
3085 + <property name="ypad">0</property>
3086 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3087 + <property name="width_chars">-1</property>
3088 + <property name="single_line_mode">False</property>
3089 + <property name="angle">0</property>
3092 + <property name="padding">0</property>
3093 + <property name="expand">False</property>
3094 + <property name="fill">False</property>
3099 + <widget class="GtkVBox" id="vbox21">
3100 + <property name="visible">True</property>
3101 + <property name="homogeneous">False</property>
3102 + <property name="spacing">0</property>
3105 + <widget class="GtkRadioButton" id="root_user_radiobutton">
3106 + <property name="visible">True</property>
3107 + <property name="tooltip" translatable="yes">Select Root Administrator User Role, if this user will be used to administer the machine while running as root. This user will not be able to login to the system directly.</property>
3108 + <property name="can_focus">True</property>
3109 + <property name="label" translatable="yes">Root Admin User Role</property>
3110 + <property name="use_underline">True</property>
3111 + <property name="relief">GTK_RELIEF_NORMAL</property>
3112 + <property name="focus_on_click">True</property>
3113 + <property name="active">False</property>
3114 + <property name="inconsistent">False</property>
3115 + <property name="draw_indicator">True</property>
3116 + <property name="group">init_radiobutton</property>
3119 + <property name="padding">0</property>
3120 + <property name="expand">False</property>
3121 + <property name="fill">False</property>
3126 + <property name="padding">0</property>
3127 + <property name="expand">False</property>
3128 + <property name="fill">False</property>
3133 + <property name="padding">0</property>
3134 + <property name="expand">True</property>
3135 + <property name="fill">True</property>
3140 + <property name="padding">0</property>
3141 + <property name="expand">True</property>
3142 + <property name="fill">True</property>
3147 + <property name="padding">0</property>
3148 + <property name="expand">True</property>
3149 + <property name="fill">True</property>
3154 + <property name="padding">0</property>
3155 + <property name="expand">True</property>
3156 + <property name="fill">True</property>
3161 + <property name="padding">0</property>
3162 + <property name="expand">True</property>
3163 + <property name="fill">True</property>
3168 + <property name="tab_expand">True</property>
3169 + <property name="tab_fill">True</property>
3174 + <widget class="GtkLabel" id="label104">
3175 + <property name="visible">True</property>
3176 + <property name="label" translatable="yes">label104</property>
3177 + <property name="use_underline">False</property>
3178 + <property name="use_markup">False</property>
3179 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3180 + <property name="wrap">False</property>
3181 + <property name="selectable">False</property>
3182 + <property name="xalign">0.5</property>
3183 + <property name="yalign">0.5</property>
3184 + <property name="xpad">0</property>
3185 + <property name="ypad">0</property>
3186 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3187 + <property name="width_chars">-1</property>
3188 + <property name="single_line_mode">False</property>
3189 + <property name="angle">0</property>
3192 + <property name="type">tab</property>
3197 + <widget class="GtkVBox" id="vbox60">
3198 + <property name="visible">True</property>
3199 + <property name="homogeneous">False</property>
3200 + <property name="spacing">0</property>
3203 + <widget class="GtkLabel" id="select_name_label">
3204 + <property name="visible">True</property>
3205 + <property name="label" translatable="yes"><b>Enter name of application or user role:</b></property>
3206 + <property name="use_underline">False</property>
3207 + <property name="use_markup">True</property>
3208 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3209 + <property name="wrap">False</property>
3210 + <property name="selectable">False</property>
3211 + <property name="xalign">0</property>
3212 + <property name="yalign">0.5</property>
3213 + <property name="xpad">0</property>
3214 + <property name="ypad">0</property>
3215 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3216 + <property name="width_chars">-1</property>
3217 + <property name="single_line_mode">False</property>
3218 + <property name="angle">0</property>
3221 + <property name="padding">5</property>
3222 + <property name="expand">False</property>
3223 + <property name="fill">False</property>
3228 + <widget class="GtkTable" id="table5">
3229 + <property name="visible">True</property>
3230 + <property name="n_rows">3</property>
3231 + <property name="n_columns">3</property>
3232 + <property name="homogeneous">False</property>
3233 + <property name="row_spacing">6</property>
3234 + <property name="column_spacing">12</property>
3237 + <widget class="GtkLabel" id="label1">
3238 + <property name="visible">True</property>
3239 + <property name="label" translatable="yes">Name</property>
3240 + <property name="use_underline">False</property>
3241 + <property name="use_markup">False</property>
3242 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3243 + <property name="wrap">False</property>
3244 + <property name="selectable">False</property>
3245 + <property name="xalign">0</property>
3246 + <property name="yalign">0.5</property>
3247 + <property name="xpad">0</property>
3248 + <property name="ypad">0</property>
3249 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3250 + <property name="width_chars">-1</property>
3251 + <property name="single_line_mode">False</property>
3252 + <property name="angle">0</property>
3255 + <property name="left_attach">0</property>
3256 + <property name="right_attach">1</property>
3257 + <property name="top_attach">0</property>
3258 + <property name="bottom_attach">1</property>
3259 + <property name="x_options">fill</property>
3260 + <property name="y_options"></property>
3265 + <widget class="GtkEntry" id="exec_entry">
3266 + <property name="visible">True</property>
3267 + <property name="tooltip" translatable="yes">Enter complete path for executable to be confined.</property>
3268 + <property name="can_focus">True</property>
3269 + <property name="editable">True</property>
3270 + <property name="visibility">True</property>
3271 + <property name="max_length">0</property>
3272 + <property name="text" translatable="yes"></property>
3273 + <property name="has_frame">True</property>
3274 + <property name="invisible_char">•</property>
3275 + <property name="activates_default">False</property>
3278 + <property name="left_attach">1</property>
3279 + <property name="right_attach">2</property>
3280 + <property name="top_attach">1</property>
3281 + <property name="bottom_attach">2</property>
3282 + <property name="y_options"></property>
3287 + <widget class="GtkButton" id="exec_button">
3288 + <property name="visible">True</property>
3289 + <property name="can_focus">True</property>
3290 + <property name="label" translatable="yes">...</property>
3291 + <property name="use_underline">True</property>
3292 + <property name="relief">GTK_RELIEF_NORMAL</property>
3293 + <property name="focus_on_click">True</property>
3294 + <signal name="clicked" handler="on_exec_select_clicked" last_modification_time="Wed, 21 Feb 2007 18:45:26 GMT"/>
3297 + <property name="left_attach">2</property>
3298 + <property name="right_attach">3</property>
3299 + <property name="top_attach">1</property>
3300 + <property name="bottom_attach">2</property>
3301 + <property name="x_options">fill</property>
3302 + <property name="y_options"></property>
3307 + <widget class="GtkEntry" id="name_entry">
3308 + <property name="visible">True</property>
3309 + <property name="tooltip" translatable="yes">Enter unique name for the confined application or user role.</property>
3310 + <property name="can_focus">True</property>
3311 + <property name="editable">True</property>
3312 + <property name="visibility">True</property>
3313 + <property name="max_length">0</property>
3314 + <property name="text" translatable="yes"></property>
3315 + <property name="has_frame">True</property>
3316 + <property name="invisible_char">•</property>
3317 + <property name="activates_default">False</property>
3320 + <property name="left_attach">1</property>
3321 + <property name="right_attach">3</property>
3322 + <property name="top_attach">0</property>
3323 + <property name="bottom_attach">1</property>
3324 + <property name="y_options"></property>
3329 + <widget class="GtkLabel" id="label2">
3330 + <property name="visible">True</property>
3331 + <property name="label" translatable="yes">Executable</property>
3332 + <property name="use_underline">False</property>
3333 + <property name="use_markup">False</property>
3334 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3335 + <property name="wrap">False</property>
3336 + <property name="selectable">False</property>
3337 + <property name="xalign">0</property>
3338 + <property name="yalign">0.5</property>
3339 + <property name="xpad">0</property>
3340 + <property name="ypad">0</property>
3341 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3342 + <property name="width_chars">-1</property>
3343 + <property name="single_line_mode">False</property>
3344 + <property name="angle">0</property>
3347 + <property name="left_attach">0</property>
3348 + <property name="right_attach">1</property>
3349 + <property name="top_attach">1</property>
3350 + <property name="bottom_attach">2</property>
3351 + <property name="x_options">fill</property>
3352 + <property name="y_options"></property>
3357 + <widget class="GtkLabel" id="label40">
3358 + <property name="visible">True</property>
3359 + <property name="label" translatable="yes">Init script</property>
3360 + <property name="use_underline">False</property>
3361 + <property name="use_markup">False</property>
3362 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3363 + <property name="wrap">False</property>
3364 + <property name="selectable">False</property>
3365 + <property name="xalign">0</property>
3366 + <property name="yalign">0.5</property>
3367 + <property name="xpad">0</property>
3368 + <property name="ypad">0</property>
3369 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3370 + <property name="width_chars">-1</property>
3371 + <property name="single_line_mode">False</property>
3372 + <property name="angle">0</property>
3375 + <property name="left_attach">0</property>
3376 + <property name="right_attach">1</property>
3377 + <property name="top_attach">2</property>
3378 + <property name="bottom_attach">3</property>
3379 + <property name="x_options">fill</property>
3380 + <property name="y_options"></property>
3385 + <widget class="GtkEntry" id="init_script_entry">
3386 + <property name="visible">True</property>
3387 + <property name="tooltip" translatable="yes">Enter complete path to init script used to start the confined application.</property>
3388 + <property name="can_focus">True</property>
3389 + <property name="editable">True</property>
3390 + <property name="visibility">True</property>
3391 + <property name="max_length">0</property>
3392 + <property name="text" translatable="yes"></property>
3393 + <property name="has_frame">True</property>
3394 + <property name="invisible_char">•</property>
3395 + <property name="activates_default">False</property>
3398 + <property name="left_attach">1</property>
3399 + <property name="right_attach">2</property>
3400 + <property name="top_attach">2</property>
3401 + <property name="bottom_attach">3</property>
3402 + <property name="y_options"></property>
3407 + <widget class="GtkButton" id="init_script_button">
3408 + <property name="visible">True</property>
3409 + <property name="can_focus">True</property>
3410 + <property name="label" translatable="yes">...</property>
3411 + <property name="use_underline">True</property>
3412 + <property name="relief">GTK_RELIEF_NORMAL</property>
3413 + <property name="focus_on_click">True</property>
3414 + <signal name="clicked" handler="on_init_script_select_clicked" last_modification_time="Thu, 30 Aug 2007 15:36:47 GMT"/>
3417 + <property name="left_attach">2</property>
3418 + <property name="right_attach">3</property>
3419 + <property name="top_attach">2</property>
3420 + <property name="bottom_attach">3</property>
3421 + <property name="x_options">fill</property>
3422 + <property name="y_options"></property>
3427 + <property name="padding">0</property>
3428 + <property name="expand">True</property>
3429 + <property name="fill">True</property>
3434 + <property name="tab_expand">False</property>
3435 + <property name="tab_fill">True</property>
3440 + <widget class="GtkLabel" id="select_name_label">
3441 + <property name="visible">True</property>
3442 + <property name="label" translatable="yes">label105</property>
3443 + <property name="use_underline">False</property>
3444 + <property name="use_markup">False</property>
3445 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3446 + <property name="wrap">False</property>
3447 + <property name="selectable">False</property>
3448 + <property name="xalign">0.5</property>
3449 + <property name="yalign">0.5</property>
3450 + <property name="xpad">0</property>
3451 + <property name="ypad">0</property>
3452 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3453 + <property name="width_chars">-1</property>
3454 + <property name="single_line_mode">False</property>
3455 + <property name="angle">0</property>
3458 + <property name="type">tab</property>
3463 + <widget class="GtkVBox" id="vbox61">
3464 + <property name="visible">True</property>
3465 + <property name="homogeneous">False</property>
3466 + <property name="spacing">0</property>
3469 + <widget class="GtkLabel" id="select_existing_role_label">
3470 + <property name="visible">True</property>
3471 + <property name="label" translatable="yes"><b>Select existing role to modify:</b></property>
3472 + <property name="use_underline">False</property>
3473 + <property name="use_markup">True</property>
3474 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3475 + <property name="wrap">False</property>
3476 + <property name="selectable">False</property>
3477 + <property name="xalign">0</property>
3478 + <property name="yalign">0.5</property>
3479 + <property name="xpad">0</property>
3480 + <property name="ypad">0</property>
3481 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3482 + <property name="width_chars">-1</property>
3483 + <property name="single_line_mode">False</property>
3484 + <property name="angle">0</property>
3487 + <property name="padding">5</property>
3488 + <property name="expand">False</property>
3489 + <property name="fill">False</property>
3494 + <widget class="GtkScrolledWindow" id="scrolledwindow5">
3495 + <property name="visible">True</property>
3496 + <property name="can_focus">True</property>
3497 + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
3498 + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
3499 + <property name="shadow_type">GTK_SHADOW_IN</property>
3500 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
3503 + <widget class="GtkTreeView" id="existing_user_treeview">
3504 + <property name="visible">True</property>
3505 + <property name="tooltip" translatable="yes">Select the user roles that will transiton to the %s domain.</property>
3506 + <property name="can_focus">True</property>
3507 + <property name="headers_visible">False</property>
3508 + <property name="rules_hint">False</property>
3509 + <property name="reorderable">False</property>
3510 + <property name="enable_search">True</property>
3511 + <property name="fixed_height_mode">False</property>
3512 + <property name="hover_selection">False</property>
3513 + <property name="hover_expand">False</property>
3518 + <property name="padding">0</property>
3519 + <property name="expand">True</property>
3520 + <property name="fill">True</property>
3525 + <property name="tab_expand">False</property>
3526 + <property name="tab_fill">True</property>
3531 + <widget class="GtkLabel" id="label106">
3532 + <property name="visible">True</property>
3533 + <property name="label" translatable="yes">label106</property>
3534 + <property name="use_underline">False</property>
3535 + <property name="use_markup">False</property>
3536 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3537 + <property name="wrap">False</property>
3538 + <property name="selectable">False</property>
3539 + <property name="xalign">0.5</property>
3540 + <property name="yalign">0.5</property>
3541 + <property name="xpad">0</property>
3542 + <property name="ypad">0</property>
3543 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3544 + <property name="width_chars">-1</property>
3545 + <property name="single_line_mode">False</property>
3546 + <property name="angle">0</property>
3549 + <property name="type">tab</property>
3554 + <widget class="GtkVBox" id="vbox62">
3555 + <property name="visible">True</property>
3556 + <property name="homogeneous">False</property>
3557 + <property name="spacing">0</property>
3560 + <widget class="GtkLabel" id="select_label">
3561 + <property name="visible">True</property>
3562 + <property name="label" translatable="yes"><b>Select roles that %s will transition to:</b></property>
3563 + <property name="use_underline">False</property>
3564 + <property name="use_markup">True</property>
3565 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3566 + <property name="wrap">False</property>
3567 + <property name="selectable">False</property>
3568 + <property name="xalign">0</property>
3569 + <property name="yalign">0.5</property>
3570 + <property name="xpad">0</property>
3571 + <property name="ypad">0</property>
3572 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3573 + <property name="width_chars">-1</property>
3574 + <property name="single_line_mode">False</property>
3575 + <property name="angle">0</property>
3578 + <property name="padding">5</property>
3579 + <property name="expand">False</property>
3580 + <property name="fill">False</property>
3585 + <widget class="GtkScrolledWindow" id="scrolledwindow12">
3586 + <property name="visible">True</property>
3587 + <property name="can_focus">True</property>
3588 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
3589 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
3590 + <property name="shadow_type">GTK_SHADOW_NONE</property>
3591 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
3594 + <widget class="GtkTreeView" id="transition_treeview">
3595 + <property name="visible">True</property>
3596 + <property name="tooltip" translatable="yes">Select applications domains that %s will transition to.</property>
3597 + <property name="can_focus">True</property>
3598 + <property name="headers_visible">False</property>
3599 + <property name="rules_hint">False</property>
3600 + <property name="reorderable">False</property>
3601 + <property name="enable_search">True</property>
3602 + <property name="fixed_height_mode">False</property>
3603 + <property name="hover_selection">False</property>
3604 + <property name="hover_expand">False</property>
3609 + <property name="padding">0</property>
3610 + <property name="expand">True</property>
3611 + <property name="fill">True</property>
3616 + <property name="tab_expand">False</property>
3617 + <property name="tab_fill">True</property>
3622 + <widget class="GtkLabel" id="label107">
3623 + <property name="visible">True</property>
3624 + <property name="label" translatable="yes">label107</property>
3625 + <property name="use_underline">False</property>
3626 + <property name="use_markup">False</property>
3627 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3628 + <property name="wrap">False</property>
3629 + <property name="selectable">False</property>
3630 + <property name="xalign">0.5</property>
3631 + <property name="yalign">0.5</property>
3632 + <property name="xpad">0</property>
3633 + <property name="ypad">0</property>
3634 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3635 + <property name="width_chars">-1</property>
3636 + <property name="single_line_mode">False</property>
3637 + <property name="angle">0</property>
3640 + <property name="type">tab</property>
3645 + <widget class="GtkVBox" id="vbox63">
3646 + <property name="visible">True</property>
3647 + <property name="homogeneous">False</property>
3648 + <property name="spacing">0</property>
3651 + <widget class="GtkLabel" id="select_user_roles_label">
3652 + <property name="visible">True</property>
3653 + <property name="label" translatable="yes"><b>Select the user_roles that will transition to %s:</b></property>
3654 + <property name="use_underline">False</property>
3655 + <property name="use_markup">True</property>
3656 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3657 + <property name="wrap">False</property>
3658 + <property name="selectable">False</property>
3659 + <property name="xalign">0</property>
3660 + <property name="yalign">0.5</property>
3661 + <property name="xpad">0</property>
3662 + <property name="ypad">0</property>
3663 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3664 + <property name="width_chars">-1</property>
3665 + <property name="single_line_mode">False</property>
3666 + <property name="angle">0</property>
3669 + <property name="padding">5</property>
3670 + <property name="expand">False</property>
3671 + <property name="fill">False</property>
3676 + <widget class="GtkScrolledWindow" id="scrolledwindow13">
3677 + <property name="visible">True</property>
3678 + <property name="can_focus">True</property>
3679 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
3680 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
3681 + <property name="shadow_type">GTK_SHADOW_NONE</property>
3682 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
3685 + <widget class="GtkTreeView" id="user_transition_treeview">
3686 + <property name="visible">True</property>
3687 + <property name="tooltip" translatable="yes">Select the user roles that will transiton to this applications domains.</property>
3688 + <property name="can_focus">True</property>
3689 + <property name="headers_visible">False</property>
3690 + <property name="rules_hint">False</property>
3691 + <property name="reorderable">False</property>
3692 + <property name="enable_search">True</property>
3693 + <property name="fixed_height_mode">False</property>
3694 + <property name="hover_selection">False</property>
3695 + <property name="hover_expand">False</property>
3700 + <property name="padding">0</property>
3701 + <property name="expand">True</property>
3702 + <property name="fill">True</property>
3707 + <property name="tab_expand">False</property>
3708 + <property name="tab_fill">True</property>
3713 + <widget class="GtkLabel" id="label108">
3714 + <property name="visible">True</property>
3715 + <property name="label" translatable="yes">label108</property>
3716 + <property name="use_underline">False</property>
3717 + <property name="use_markup">False</property>
3718 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3719 + <property name="wrap">False</property>
3720 + <property name="selectable">False</property>
3721 + <property name="xalign">0.5</property>
3722 + <property name="yalign">0.5</property>
3723 + <property name="xpad">0</property>
3724 + <property name="ypad">0</property>
3725 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3726 + <property name="width_chars">-1</property>
3727 + <property name="single_line_mode">False</property>
3728 + <property name="angle">0</property>
3731 + <property name="type">tab</property>
3736 + <widget class="GtkVBox" id="vbox64">
3737 + <property name="visible">True</property>
3738 + <property name="homogeneous">False</property>
3739 + <property name="spacing">0</property>
3742 + <widget class="GtkLabel" id="select_domain_admin_label">
3743 + <property name="visible">True</property>
3744 + <property name="label" translatable="yes"><b>Select domains that %s will administer:</b></property>
3745 + <property name="use_underline">False</property>
3746 + <property name="use_markup">True</property>
3747 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3748 + <property name="wrap">False</property>
3749 + <property name="selectable">False</property>
3750 + <property name="xalign">0</property>
3751 + <property name="yalign">0.5</property>
3752 + <property name="xpad">0</property>
3753 + <property name="ypad">0</property>
3754 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3755 + <property name="width_chars">-1</property>
3756 + <property name="single_line_mode">False</property>
3757 + <property name="angle">0</property>
3760 + <property name="padding">5</property>
3761 + <property name="expand">False</property>
3762 + <property name="fill">False</property>
3767 + <widget class="GtkScrolledWindow" id="scrolledwindow14">
3768 + <property name="visible">True</property>
3769 + <property name="can_focus">True</property>
3770 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
3771 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
3772 + <property name="shadow_type">GTK_SHADOW_NONE</property>
3773 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
3776 + <widget class="GtkTreeView" id="admin_treeview">
3777 + <property name="visible">True</property>
3778 + <property name="tooltip" translatable="yes">Select the domains that you would like this user administer.</property>
3779 + <property name="can_focus">True</property>
3780 + <property name="headers_visible">False</property>
3781 + <property name="rules_hint">False</property>
3782 + <property name="reorderable">False</property>
3783 + <property name="enable_search">True</property>
3784 + <property name="fixed_height_mode">False</property>
3785 + <property name="hover_selection">False</property>
3786 + <property name="hover_expand">False</property>
3791 + <property name="padding">0</property>
3792 + <property name="expand">True</property>
3793 + <property name="fill">True</property>
3798 + <property name="tab_expand">False</property>
3799 + <property name="tab_fill">True</property>
3804 + <widget class="GtkLabel" id="label109">
3805 + <property name="visible">True</property>
3806 + <property name="label" translatable="yes">label109</property>
3807 + <property name="use_underline">False</property>
3808 + <property name="use_markup">False</property>
3809 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3810 + <property name="wrap">False</property>
3811 + <property name="selectable">False</property>
3812 + <property name="xalign">0.5</property>
3813 + <property name="yalign">0.5</property>
3814 + <property name="xpad">0</property>
3815 + <property name="ypad">0</property>
3816 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3817 + <property name="width_chars">-1</property>
3818 + <property name="single_line_mode">False</property>
3819 + <property name="angle">0</property>
3822 + <property name="type">tab</property>
3827 + <widget class="GtkVBox" id="vbox65">
3828 + <property name="visible">True</property>
3829 + <property name="homogeneous">False</property>
3830 + <property name="spacing">0</property>
3833 + <widget class="GtkLabel" id="select_role_label">
3834 + <property name="visible">True</property>
3835 + <property name="label" translatable="yes"><b>Select additional roles for %s:</b></property>
3836 + <property name="use_underline">False</property>
3837 + <property name="use_markup">True</property>
3838 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3839 + <property name="wrap">False</property>
3840 + <property name="selectable">False</property>
3841 + <property name="xalign">0</property>
3842 + <property name="yalign">0.5</property>
3843 + <property name="xpad">0</property>
3844 + <property name="ypad">0</property>
3845 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3846 + <property name="width_chars">-1</property>
3847 + <property name="single_line_mode">False</property>
3848 + <property name="angle">0</property>
3851 + <property name="padding">5</property>
3852 + <property name="expand">False</property>
3853 + <property name="fill">False</property>
3858 + <widget class="GtkScrolledWindow" id="scrolledwindow15">
3859 + <property name="visible">True</property>
3860 + <property name="can_focus">True</property>
3861 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
3862 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
3863 + <property name="shadow_type">GTK_SHADOW_NONE</property>
3864 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
3867 + <widget class="GtkTreeView" id="role_treeview">
3868 + <property name="visible">True</property>
3869 + <property name="tooltip" translatable="yes">Select the domains that you would like this user administer.</property>
3870 + <property name="can_focus">True</property>
3871 + <property name="headers_visible">False</property>
3872 + <property name="rules_hint">False</property>
3873 + <property name="reorderable">False</property>
3874 + <property name="enable_search">True</property>
3875 + <property name="fixed_height_mode">False</property>
3876 + <property name="hover_selection">False</property>
3877 + <property name="hover_expand">False</property>
3882 + <property name="padding">0</property>
3883 + <property name="expand">True</property>
3884 + <property name="fill">True</property>
3889 + <property name="tab_expand">False</property>
3890 + <property name="tab_fill">True</property>
3895 + <widget class="GtkLabel" id="in_net_page">
3896 + <property name="visible">True</property>
3897 + <property name="label" translatable="yes">label111</property>
3898 + <property name="use_underline">False</property>
3899 + <property name="use_markup">False</property>
3900 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3901 + <property name="wrap">False</property>
3902 + <property name="selectable">False</property>
3903 + <property name="xalign">0.5</property>
3904 + <property name="yalign">0.5</property>
3905 + <property name="xpad">0</property>
3906 + <property name="ypad">0</property>
3907 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3908 + <property name="width_chars">-1</property>
3909 + <property name="single_line_mode">False</property>
3910 + <property name="angle">0</property>
3913 + <property name="type">tab</property>
3918 + <widget class="GtkVBox" id="in_net_page">
3919 + <property name="visible">True</property>
3920 + <property name="homogeneous">False</property>
3921 + <property name="spacing">0</property>
3924 + <widget class="GtkLabel" id="select_in_label">
3925 + <property name="visible">True</property>
3926 + <property name="label" translatable="yes"><b>Enter network ports that %s binds on:</b></property>
3927 + <property name="use_underline">False</property>
3928 + <property name="use_markup">True</property>
3929 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3930 + <property name="wrap">False</property>
3931 + <property name="selectable">False</property>
3932 + <property name="xalign">0</property>
3933 + <property name="yalign">0.5</property>
3934 + <property name="xpad">0</property>
3935 + <property name="ypad">0</property>
3936 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3937 + <property name="width_chars">-1</property>
3938 + <property name="single_line_mode">False</property>
3939 + <property name="angle">0</property>
3942 + <property name="padding">5</property>
3943 + <property name="expand">False</property>
3944 + <property name="fill">False</property>
3949 + <widget class="GtkVBox" id="vbox22">
3950 + <property name="visible">True</property>
3951 + <property name="homogeneous">False</property>
3952 + <property name="spacing">6</property>
3955 + <widget class="GtkLabel" id="label55">
3956 + <property name="visible">True</property>
3957 + <property name="label" translatable="yes"><b>TCP Ports</b></property>
3958 + <property name="use_underline">False</property>
3959 + <property name="use_markup">True</property>
3960 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3961 + <property name="wrap">False</property>
3962 + <property name="selectable">False</property>
3963 + <property name="xalign">0</property>
3964 + <property name="yalign">0.5</property>
3965 + <property name="xpad">0</property>
3966 + <property name="ypad">0</property>
3967 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3968 + <property name="width_chars">-1</property>
3969 + <property name="single_line_mode">False</property>
3970 + <property name="angle">0</property>
3973 + <property name="padding">0</property>
3974 + <property name="expand">False</property>
3975 + <property name="fill">False</property>
3980 + <widget class="GtkHBox" id="hbox20">
3981 + <property name="visible">True</property>
3982 + <property name="homogeneous">False</property>
3983 + <property name="spacing">0</property>
3986 + <widget class="GtkLabel" id="label56">
3987 + <property name="visible">True</property>
3988 + <property name="label"> </property>
3989 + <property name="use_underline">False</property>
3990 + <property name="use_markup">False</property>
3991 + <property name="justify">GTK_JUSTIFY_LEFT</property>
3992 + <property name="wrap">False</property>
3993 + <property name="selectable">False</property>
3994 + <property name="xalign">0.5</property>
3995 + <property name="yalign">0.5</property>
3996 + <property name="xpad">0</property>
3997 + <property name="ypad">0</property>
3998 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
3999 + <property name="width_chars">-1</property>
4000 + <property name="single_line_mode">False</property>
4001 + <property name="angle">0</property>
4004 + <property name="padding">0</property>
4005 + <property name="expand">False</property>
4006 + <property name="fill">False</property>
4011 + <widget class="GtkVBox" id="vbox23">
4012 + <property name="visible">True</property>
4013 + <property name="homogeneous">False</property>
4014 + <property name="spacing">6</property>
4017 + <widget class="GtkHBox" id="hbox21">
4018 + <property name="visible">True</property>
4019 + <property name="homogeneous">False</property>
4020 + <property name="spacing">12</property>
4023 + <widget class="GtkCheckButton" id="in_tcp_all_checkbutton">
4024 + <property name="visible">True</property>
4025 + <property name="tooltip" translatable="yes">Allows %s to bind to any udp port</property>
4026 + <property name="can_focus">True</property>
4027 + <property name="label" translatable="yes">All</property>
4028 + <property name="use_underline">True</property>
4029 + <property name="relief">GTK_RELIEF_NORMAL</property>
4030 + <property name="focus_on_click">True</property>
4031 + <property name="active">False</property>
4032 + <property name="inconsistent">False</property>
4033 + <property name="draw_indicator">True</property>
4036 + <property name="padding">10</property>
4037 + <property name="expand">False</property>
4038 + <property name="fill">False</property>
4043 + <widget class="GtkCheckButton" id="in_tcp_reserved_checkbutton">
4044 + <property name="visible">True</property>
4045 + <property name="tooltip" translatable="yes">Allow %s to call bindresvport with 0. Binding to port 600-1024</property>
4046 + <property name="can_focus">True</property>
4047 + <property name="label" translatable="yes">600-1024</property>
4048 + <property name="use_underline">True</property>
4049 + <property name="relief">GTK_RELIEF_NORMAL</property>
4050 + <property name="focus_on_click">True</property>
4051 + <property name="active">False</property>
4052 + <property name="inconsistent">False</property>
4053 + <property name="draw_indicator">True</property>
4056 + <property name="padding">10</property>
4057 + <property name="expand">False</property>
4058 + <property name="fill">False</property>
4063 + <widget class="GtkCheckButton" id="in_tcp_unreserved_checkbutton">
4064 + <property name="visible">True</property>
4065 + <property name="tooltip" translatable="yes">Enter a comma separated list of udp ports or ranges of ports that %s binds to. Example: 612, 650-660</property>
4066 + <property name="can_focus">True</property>
4067 + <property name="label" translatable="yes">Unreserved Ports (>1024)</property>
4068 + <property name="use_underline">True</property>
4069 + <property name="relief">GTK_RELIEF_NORMAL</property>
4070 + <property name="focus_on_click">True</property>
4071 + <property name="active">False</property>
4072 + <property name="inconsistent">False</property>
4073 + <property name="draw_indicator">True</property>
4076 + <property name="padding">10</property>
4077 + <property name="expand">False</property>
4078 + <property name="fill">False</property>
4083 + <property name="padding">0</property>
4084 + <property name="expand">True</property>
4085 + <property name="fill">True</property>
4090 + <widget class="GtkHBox" id="hbox22">
4091 + <property name="visible">True</property>
4092 + <property name="homogeneous">False</property>
4093 + <property name="spacing">12</property>
4096 + <widget class="GtkLabel" id="label57">
4097 + <property name="visible">True</property>
4098 + <property name="label" translatable="yes">Select Ports</property>
4099 + <property name="use_underline">False</property>
4100 + <property name="use_markup">False</property>
4101 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4102 + <property name="wrap">False</property>
4103 + <property name="selectable">False</property>
4104 + <property name="xalign">0</property>
4105 + <property name="yalign">0.5</property>
4106 + <property name="xpad">0</property>
4107 + <property name="ypad">0</property>
4108 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4109 + <property name="width_chars">-1</property>
4110 + <property name="single_line_mode">False</property>
4111 + <property name="angle">0</property>
4114 + <property name="padding">5</property>
4115 + <property name="expand">False</property>
4116 + <property name="fill">False</property>
4121 + <widget class="GtkEntry" id="in_tcp_entry">
4122 + <property name="visible">True</property>
4123 + <property name="tooltip" translatable="yes">Allows %s to bind to any udp ports > 1024</property>
4124 + <property name="can_focus">True</property>
4125 + <property name="editable">True</property>
4126 + <property name="visibility">True</property>
4127 + <property name="max_length">0</property>
4128 + <property name="text" translatable="yes"></property>
4129 + <property name="has_frame">True</property>
4130 + <property name="invisible_char">•</property>
4131 + <property name="activates_default">False</property>
4134 + <property name="padding">0</property>
4135 + <property name="expand">True</property>
4136 + <property name="fill">True</property>
4141 + <property name="padding">0</property>
4142 + <property name="expand">True</property>
4143 + <property name="fill">True</property>
4148 + <property name="padding">0</property>
4149 + <property name="expand">True</property>
4150 + <property name="fill">True</property>
4155 + <property name="padding">0</property>
4156 + <property name="expand">True</property>
4157 + <property name="fill">True</property>
4162 + <property name="padding">0</property>
4163 + <property name="expand">True</property>
4164 + <property name="fill">True</property>
4169 + <widget class="GtkVBox" id="vbox24">
4170 + <property name="visible">True</property>
4171 + <property name="homogeneous">False</property>
4172 + <property name="spacing">6</property>
4175 + <widget class="GtkLabel" id="label58">
4176 + <property name="visible">True</property>
4177 + <property name="label" translatable="yes"><b>UDP Ports</b></property>
4178 + <property name="use_underline">False</property>
4179 + <property name="use_markup">True</property>
4180 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4181 + <property name="wrap">False</property>
4182 + <property name="selectable">False</property>
4183 + <property name="xalign">0</property>
4184 + <property name="yalign">0.5</property>
4185 + <property name="xpad">0</property>
4186 + <property name="ypad">0</property>
4187 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4188 + <property name="width_chars">-1</property>
4189 + <property name="single_line_mode">False</property>
4190 + <property name="angle">0</property>
4193 + <property name="padding">0</property>
4194 + <property name="expand">False</property>
4195 + <property name="fill">False</property>
4200 + <widget class="GtkHBox" id="hbox23">
4201 + <property name="visible">True</property>
4202 + <property name="homogeneous">False</property>
4203 + <property name="spacing">0</property>
4206 + <widget class="GtkLabel" id="label59">
4207 + <property name="visible">True</property>
4208 + <property name="label"> </property>
4209 + <property name="use_underline">False</property>
4210 + <property name="use_markup">False</property>
4211 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4212 + <property name="wrap">False</property>
4213 + <property name="selectable">False</property>
4214 + <property name="xalign">0.5</property>
4215 + <property name="yalign">0.5</property>
4216 + <property name="xpad">0</property>
4217 + <property name="ypad">0</property>
4218 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4219 + <property name="width_chars">-1</property>
4220 + <property name="single_line_mode">False</property>
4221 + <property name="angle">0</property>
4224 + <property name="padding">0</property>
4225 + <property name="expand">False</property>
4226 + <property name="fill">False</property>
4231 + <widget class="GtkVBox" id="vbox25">
4232 + <property name="visible">True</property>
4233 + <property name="homogeneous">False</property>
4234 + <property name="spacing">6</property>
4237 + <widget class="GtkHBox" id="hbox24">
4238 + <property name="visible">True</property>
4239 + <property name="homogeneous">False</property>
4240 + <property name="spacing">12</property>
4243 + <widget class="GtkCheckButton" id="in_udp_all_checkbutton">
4244 + <property name="visible">True</property>
4245 + <property name="tooltip" translatable="yes">Allows %s to bind to any udp port</property>
4246 + <property name="can_focus">True</property>
4247 + <property name="label" translatable="yes">All</property>
4248 + <property name="use_underline">True</property>
4249 + <property name="relief">GTK_RELIEF_NORMAL</property>
4250 + <property name="focus_on_click">True</property>
4251 + <property name="active">False</property>
4252 + <property name="inconsistent">False</property>
4253 + <property name="draw_indicator">True</property>
4256 + <property name="padding">10</property>
4257 + <property name="expand">False</property>
4258 + <property name="fill">False</property>
4263 + <widget class="GtkCheckButton" id="in_udp_reserved_checkbutton">
4264 + <property name="visible">True</property>
4265 + <property name="tooltip" translatable="yes">Allow %s to call bindresvport with 0. Binding to port 600-1024</property>
4266 + <property name="can_focus">True</property>
4267 + <property name="label" translatable="yes">600-1024</property>
4268 + <property name="use_underline">True</property>
4269 + <property name="relief">GTK_RELIEF_NORMAL</property>
4270 + <property name="focus_on_click">True</property>
4271 + <property name="active">False</property>
4272 + <property name="inconsistent">False</property>
4273 + <property name="draw_indicator">True</property>
4276 + <property name="padding">10</property>
4277 + <property name="expand">False</property>
4278 + <property name="fill">False</property>
4283 + <widget class="GtkCheckButton" id="in_udp_unreserved_checkbutton">
4284 + <property name="visible">True</property>
4285 + <property name="tooltip" translatable="yes">Enter a comma separated list of udp ports or ranges of ports that %s binds to. Example: 612, 650-660</property>
4286 + <property name="can_focus">True</property>
4287 + <property name="label" translatable="yes">Unreserved Ports (>1024)</property>
4288 + <property name="use_underline">True</property>
4289 + <property name="relief">GTK_RELIEF_NORMAL</property>
4290 + <property name="focus_on_click">True</property>
4291 + <property name="active">False</property>
4292 + <property name="inconsistent">False</property>
4293 + <property name="draw_indicator">True</property>
4296 + <property name="padding">10</property>
4297 + <property name="expand">False</property>
4298 + <property name="fill">False</property>
4303 + <property name="padding">0</property>
4304 + <property name="expand">True</property>
4305 + <property name="fill">True</property>
4310 + <widget class="GtkHBox" id="hbox25">
4311 + <property name="visible">True</property>
4312 + <property name="homogeneous">False</property>
4313 + <property name="spacing">12</property>
4316 + <widget class="GtkLabel" id="label60">
4317 + <property name="visible">True</property>
4318 + <property name="label" translatable="yes">Select Ports</property>
4319 + <property name="use_underline">False</property>
4320 + <property name="use_markup">False</property>
4321 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4322 + <property name="wrap">False</property>
4323 + <property name="selectable">False</property>
4324 + <property name="xalign">0</property>
4325 + <property name="yalign">0.5</property>
4326 + <property name="xpad">0</property>
4327 + <property name="ypad">0</property>
4328 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4329 + <property name="width_chars">-1</property>
4330 + <property name="single_line_mode">False</property>
4331 + <property name="angle">0</property>
4334 + <property name="padding">5</property>
4335 + <property name="expand">False</property>
4336 + <property name="fill">False</property>
4341 + <widget class="GtkEntry" id="in_udp_entry">
4342 + <property name="visible">True</property>
4343 + <property name="tooltip" translatable="yes">Allows %s to bind to any udp ports > 1024</property>
4344 + <property name="can_focus">True</property>
4345 + <property name="editable">True</property>
4346 + <property name="visibility">True</property>
4347 + <property name="max_length">0</property>
4348 + <property name="text" translatable="yes"></property>
4349 + <property name="has_frame">True</property>
4350 + <property name="invisible_char">•</property>
4351 + <property name="activates_default">False</property>
4354 + <property name="padding">0</property>
4355 + <property name="expand">True</property>
4356 + <property name="fill">True</property>
4361 + <property name="padding">0</property>
4362 + <property name="expand">True</property>
4363 + <property name="fill">True</property>
4368 + <property name="padding">0</property>
4369 + <property name="expand">True</property>
4370 + <property name="fill">True</property>
4375 + <property name="padding">0</property>
4376 + <property name="expand">True</property>
4377 + <property name="fill">True</property>
4382 + <property name="padding">0</property>
4383 + <property name="expand">True</property>
4384 + <property name="fill">True</property>
4389 + <property name="tab_expand">False</property>
4390 + <property name="tab_fill">True</property>
4395 + <widget class="GtkLabel" id="label113">
4396 + <property name="visible">True</property>
4397 + <property name="label" translatable="yes">label113</property>
4398 + <property name="use_underline">False</property>
4399 + <property name="use_markup">False</property>
4400 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4401 + <property name="wrap">False</property>
4402 + <property name="selectable">False</property>
4403 + <property name="xalign">0.5</property>
4404 + <property name="yalign">0.5</property>
4405 + <property name="xpad">0</property>
4406 + <property name="ypad">0</property>
4407 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4408 + <property name="width_chars">-1</property>
4409 + <property name="single_line_mode">False</property>
4410 + <property name="angle">0</property>
4413 + <property name="type">tab</property>
4418 + <widget class="GtkVBox" id="vbox75">
4419 + <property name="visible">True</property>
4420 + <property name="homogeneous">False</property>
4421 + <property name="spacing">0</property>
4424 + <widget class="GtkLabel" id="select_out_label">
4425 + <property name="visible">True</property>
4426 + <property name="label" translatable="yes"><b>Select network ports that %s connects to:</b></property>
4427 + <property name="use_underline">False</property>
4428 + <property name="use_markup">True</property>
4429 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4430 + <property name="wrap">False</property>
4431 + <property name="selectable">False</property>
4432 + <property name="xalign">0</property>
4433 + <property name="yalign">0.5</property>
4434 + <property name="xpad">0</property>
4435 + <property name="ypad">0</property>
4436 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4437 + <property name="width_chars">-1</property>
4438 + <property name="single_line_mode">False</property>
4439 + <property name="angle">0</property>
4442 + <property name="padding">5</property>
4443 + <property name="expand">False</property>
4444 + <property name="fill">False</property>
4449 + <widget class="GtkVBox" id="vbox26">
4450 + <property name="visible">True</property>
4451 + <property name="homogeneous">False</property>
4452 + <property name="spacing">6</property>
4455 + <widget class="GtkLabel" id="label37">
4456 + <property name="visible">True</property>
4457 + <property name="label" translatable="yes"><b>TCP Ports</b></property>
4458 + <property name="use_underline">False</property>
4459 + <property name="use_markup">True</property>
4460 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4461 + <property name="wrap">False</property>
4462 + <property name="selectable">False</property>
4463 + <property name="xalign">0</property>
4464 + <property name="yalign">0.5</property>
4465 + <property name="xpad">0</property>
4466 + <property name="ypad">0</property>
4467 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4468 + <property name="width_chars">-1</property>
4469 + <property name="single_line_mode">False</property>
4470 + <property name="angle">0</property>
4473 + <property name="padding">0</property>
4474 + <property name="expand">False</property>
4475 + <property name="fill">False</property>
4480 + <widget class="GtkHBox" id="hbox26">
4481 + <property name="visible">True</property>
4482 + <property name="homogeneous">False</property>
4483 + <property name="spacing">0</property>
4486 + <widget class="GtkLabel" id="label61">
4487 + <property name="visible">True</property>
4488 + <property name="label"> </property>
4489 + <property name="use_underline">False</property>
4490 + <property name="use_markup">False</property>
4491 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4492 + <property name="wrap">False</property>
4493 + <property name="selectable">False</property>
4494 + <property name="xalign">0.5</property>
4495 + <property name="yalign">0.5</property>
4496 + <property name="xpad">0</property>
4497 + <property name="ypad">0</property>
4498 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4499 + <property name="width_chars">-1</property>
4500 + <property name="single_line_mode">False</property>
4501 + <property name="angle">0</property>
4504 + <property name="padding">0</property>
4505 + <property name="expand">False</property>
4506 + <property name="fill">False</property>
4511 + <widget class="GtkHBox" id="hbox15">
4512 + <property name="visible">True</property>
4513 + <property name="homogeneous">False</property>
4514 + <property name="spacing">12</property>
4517 + <widget class="GtkCheckButton" id="out_tcp_all_checkbutton">
4518 + <property name="tooltip" translatable="yes">Allows %s to connect to any tcp port</property>
4519 + <property name="visible">True</property>
4520 + <property name="can_focus">True</property>
4521 + <property name="label" translatable="yes">All</property>
4522 + <property name="use_underline">True</property>
4523 + <property name="relief">GTK_RELIEF_NORMAL</property>
4524 + <property name="focus_on_click">True</property>
4525 + <property name="active">False</property>
4526 + <property name="inconsistent">False</property>
4527 + <property name="draw_indicator">True</property>
4530 + <property name="padding">10</property>
4531 + <property name="expand">False</property>
4532 + <property name="fill">False</property>
4537 + <widget class="GtkLabel" id="label38">
4538 + <property name="visible">True</property>
4539 + <property name="label" translatable="yes">Select Ports</property>
4540 + <property name="use_underline">False</property>
4541 + <property name="use_markup">False</property>
4542 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4543 + <property name="wrap">False</property>
4544 + <property name="selectable">False</property>
4545 + <property name="xalign">0</property>
4546 + <property name="yalign">0.5</property>
4547 + <property name="xpad">0</property>
4548 + <property name="ypad">0</property>
4549 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4550 + <property name="width_chars">-1</property>
4551 + <property name="single_line_mode">False</property>
4552 + <property name="angle">0</property>
4555 + <property name="padding">5</property>
4556 + <property name="expand">False</property>
4557 + <property name="fill">False</property>
4562 + <widget class="GtkEntry" id="out_tcp_entry">
4563 + <property name="visible">True</property>
4564 + <property name="tooltip" translatable="yes">Enter a comma separated list of tcp ports or ranges of ports that %s connects to. Example: 612, 650-660</property>
4565 + <property name="can_focus">True</property>
4566 + <property name="editable">True</property>
4567 + <property name="visibility">True</property>
4568 + <property name="max_length">0</property>
4569 + <property name="text" translatable="yes"></property>
4570 + <property name="has_frame">True</property>
4571 + <property name="invisible_char">•</property>
4572 + <property name="activates_default">False</property>
4575 + <property name="padding">0</property>
4576 + <property name="expand">True</property>
4577 + <property name="fill">True</property>
4582 + <property name="padding">0</property>
4583 + <property name="expand">True</property>
4584 + <property name="fill">True</property>
4589 + <property name="padding">0</property>
4590 + <property name="expand">True</property>
4591 + <property name="fill">True</property>
4596 + <property name="padding">0</property>
4597 + <property name="expand">True</property>
4598 + <property name="fill">True</property>
4603 + <widget class="GtkVBox" id="vbox27">
4604 + <property name="visible">True</property>
4605 + <property name="homogeneous">False</property>
4606 + <property name="spacing">6</property>
4609 + <widget class="GtkLabel" id="label23">
4610 + <property name="visible">True</property>
4611 + <property name="label" translatable="yes"><b>UDP Ports</b></property>
4612 + <property name="use_underline">False</property>
4613 + <property name="use_markup">True</property>
4614 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4615 + <property name="wrap">False</property>
4616 + <property name="selectable">False</property>
4617 + <property name="xalign">0</property>
4618 + <property name="yalign">0.5</property>
4619 + <property name="xpad">0</property>
4620 + <property name="ypad">0</property>
4621 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4622 + <property name="width_chars">-1</property>
4623 + <property name="single_line_mode">False</property>
4624 + <property name="angle">0</property>
4627 + <property name="padding">0</property>
4628 + <property name="expand">False</property>
4629 + <property name="fill">False</property>
4634 + <widget class="GtkHBox" id="hbox27">
4635 + <property name="visible">True</property>
4636 + <property name="homogeneous">False</property>
4637 + <property name="spacing">0</property>
4640 + <widget class="GtkLabel" id="label62">
4641 + <property name="visible">True</property>
4642 + <property name="label"> </property>
4643 + <property name="use_underline">False</property>
4644 + <property name="use_markup">False</property>
4645 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4646 + <property name="wrap">False</property>
4647 + <property name="selectable">False</property>
4648 + <property name="xalign">0.5</property>
4649 + <property name="yalign">0.5</property>
4650 + <property name="xpad">0</property>
4651 + <property name="ypad">0</property>
4652 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4653 + <property name="width_chars">-1</property>
4654 + <property name="single_line_mode">False</property>
4655 + <property name="angle">0</property>
4658 + <property name="padding">0</property>
4659 + <property name="expand">False</property>
4660 + <property name="fill">False</property>
4665 + <widget class="GtkHBox" id="hbox12">
4666 + <property name="visible">True</property>
4667 + <property name="homogeneous">False</property>
4668 + <property name="spacing">12</property>
4671 + <widget class="GtkCheckButton" id="out_udp_all_checkbutton">
4672 + <property name="tooltip" translatable="yes">Allows %s to connect to any udp port</property>
4673 + <property name="visible">True</property>
4674 + <property name="can_focus">True</property>
4675 + <property name="label" translatable="yes">All</property>
4676 + <property name="use_underline">True</property>
4677 + <property name="relief">GTK_RELIEF_NORMAL</property>
4678 + <property name="focus_on_click">True</property>
4679 + <property name="active">False</property>
4680 + <property name="inconsistent">False</property>
4681 + <property name="draw_indicator">True</property>
4684 + <property name="padding">10</property>
4685 + <property name="expand">False</property>
4686 + <property name="fill">False</property>
4691 + <widget class="GtkLabel" id="label22">
4692 + <property name="visible">True</property>
4693 + <property name="label" translatable="yes">Select Ports</property>
4694 + <property name="use_underline">False</property>
4695 + <property name="use_markup">False</property>
4696 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4697 + <property name="wrap">False</property>
4698 + <property name="selectable">False</property>
4699 + <property name="xalign">0</property>
4700 + <property name="yalign">0.5</property>
4701 + <property name="xpad">0</property>
4702 + <property name="ypad">0</property>
4703 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4704 + <property name="width_chars">-1</property>
4705 + <property name="single_line_mode">False</property>
4706 + <property name="angle">0</property>
4709 + <property name="padding">5</property>
4710 + <property name="expand">False</property>
4711 + <property name="fill">False</property>
4716 + <widget class="GtkEntry" id="out_udp_entry">
4717 + <property name="visible">True</property>
4718 + <property name="tooltip" translatable="yes">Enter a comma separated list of udp ports or ranges of ports that %s connects to. Example: 612, 650-660</property>
4719 + <property name="can_focus">True</property>
4720 + <property name="editable">True</property>
4721 + <property name="visibility">True</property>
4722 + <property name="max_length">0</property>
4723 + <property name="text" translatable="yes"></property>
4724 + <property name="has_frame">True</property>
4725 + <property name="invisible_char">•</property>
4726 + <property name="activates_default">False</property>
4729 + <property name="padding">0</property>
4730 + <property name="expand">True</property>
4731 + <property name="fill">True</property>
4736 + <property name="padding">0</property>
4737 + <property name="expand">True</property>
4738 + <property name="fill">True</property>
4743 + <property name="padding">0</property>
4744 + <property name="expand">True</property>
4745 + <property name="fill">True</property>
4750 + <property name="padding">0</property>
4751 + <property name="expand">True</property>
4752 + <property name="fill">True</property>
4757 + <property name="tab_expand">False</property>
4758 + <property name="tab_fill">True</property>
4763 + <widget class="GtkLabel" id="label114">
4764 + <property name="visible">True</property>
4765 + <property name="label" translatable="yes">label114</property>
4766 + <property name="use_underline">False</property>
4767 + <property name="use_markup">False</property>
4768 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4769 + <property name="wrap">False</property>
4770 + <property name="selectable">False</property>
4771 + <property name="xalign">0.5</property>
4772 + <property name="yalign">0.5</property>
4773 + <property name="xpad">0</property>
4774 + <property name="ypad">0</property>
4775 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4776 + <property name="width_chars">-1</property>
4777 + <property name="single_line_mode">False</property>
4778 + <property name="angle">0</property>
4781 + <property name="type">tab</property>
4786 + <widget class="GtkVBox" id="vbox68">
4787 + <property name="visible">True</property>
4788 + <property name="homogeneous">False</property>
4789 + <property name="spacing">0</property>
4792 + <widget class="GtkLabel" id="select_common_label">
4793 + <property name="visible">True</property>
4794 + <property name="label" translatable="yes"><b>Select common application traits for %s:</b></property>
4795 + <property name="use_underline">False</property>
4796 + <property name="use_markup">True</property>
4797 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4798 + <property name="wrap">False</property>
4799 + <property name="selectable">False</property>
4800 + <property name="xalign">0</property>
4801 + <property name="yalign">0.5</property>
4802 + <property name="xpad">0</property>
4803 + <property name="ypad">0</property>
4804 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
4805 + <property name="width_chars">-1</property>
4806 + <property name="single_line_mode">False</property>
4807 + <property name="angle">0</property>
4810 + <property name="padding">5</property>
4811 + <property name="expand">False</property>
4812 + <property name="fill">False</property>
4817 + <widget class="GtkVBox" id="vbox4">
4818 + <property name="visible">True</property>
4819 + <property name="homogeneous">False</property>
4820 + <property name="spacing">6</property>
4823 + <widget class="GtkCheckButton" id="syslog_checkbutton">
4824 + <property name="visible">True</property>
4825 + <property name="can_focus">True</property>
4826 + <property name="label" translatable="yes">Writes syslog messages </property>
4827 + <property name="use_underline">True</property>
4828 + <property name="relief">GTK_RELIEF_NORMAL</property>
4829 + <property name="focus_on_click">True</property>
4830 + <property name="active">False</property>
4831 + <property name="inconsistent">False</property>
4832 + <property name="draw_indicator">True</property>
4835 + <property name="padding">0</property>
4836 + <property name="expand">False</property>
4837 + <property name="fill">False</property>
4842 + <widget class="GtkCheckButton" id="tmp_checkbutton">
4843 + <property name="visible">True</property>
4844 + <property name="can_focus">True</property>
4845 + <property name="label" translatable="yes">Create/Manipulate temporary files in /tmp</property>
4846 + <property name="use_underline">True</property>
4847 + <property name="relief">GTK_RELIEF_NORMAL</property>
4848 + <property name="focus_on_click">True</property>
4849 + <property name="active">False</property>
4850 + <property name="inconsistent">False</property>
4851 + <property name="draw_indicator">True</property>
4854 + <property name="padding">0</property>
4855 + <property name="expand">False</property>
4856 + <property name="fill">False</property>
4861 + <widget class="GtkCheckButton" id="pam_checkbutton">
4862 + <property name="visible">True</property>
4863 + <property name="can_focus">True</property>
4864 + <property name="label" translatable="yes">Uses Pam for authentication</property>
4865 + <property name="use_underline">True</property>
4866 + <property name="relief">GTK_RELIEF_NORMAL</property>
4867 + <property name="focus_on_click">True</property>
4868 + <property name="active">False</property>
4869 + <property name="inconsistent">False</property>
4870 + <property name="draw_indicator">True</property>
4873 + <property name="padding">0</property>
4874 + <property name="expand">False</property>
4875 + <property name="fill">False</property>
4880 + <widget class="GtkCheckButton" id="uid_checkbutton">
4881 + <property name="visible">True</property>
4882 + <property name="can_focus">True</property>
4883 + <property name="label" translatable="yes">Uses nsswitch or getpw* calls</property>
4884 + <property name="use_underline">True</property>
4885 + <property name="relief">GTK_RELIEF_NORMAL</property>
4886 + <property name="focus_on_click">True</property>
4887 + <property name="active">False</property>
4888 + <property name="inconsistent">False</property>
4889 + <property name="draw_indicator">True</property>
4892 + <property name="padding">0</property>
4893 + <property name="expand">False</property>
4894 + <property name="fill">False</property>
4899 + <widget class="GtkCheckButton" id="dbus_checkbutton">
4900 + <property name="visible">True</property>
4901 + <property name="can_focus">True</property>
4902 + <property name="label" translatable="yes">Uses dbus</property>
4903 + <property name="use_underline">True</property>
4904 + <property name="relief">GTK_RELIEF_NORMAL</property>
4905 + <property name="focus_on_click">True</property>
4906 + <property name="active">False</property>
4907 + <property name="inconsistent">False</property>
4908 + <property name="draw_indicator">True</property>
4911 + <property name="padding">0</property>
4912 + <property name="expand">False</property>
4913 + <property name="fill">False</property>
4918 + <widget class="GtkCheckButton" id="audit_checkbutton">
4919 + <property name="visible">True</property>
4920 + <property name="can_focus">True</property>
4921 + <property name="label" translatable="yes">Sends audit messages</property>
4922 + <property name="use_underline">True</property>
4923 + <property name="relief">GTK_RELIEF_NORMAL</property>
4924 + <property name="focus_on_click">True</property>
4925 + <property name="active">False</property>
4926 + <property name="inconsistent">False</property>
4927 + <property name="draw_indicator">True</property>
4930 + <property name="padding">0</property>
4931 + <property name="expand">False</property>
4932 + <property name="fill">False</property>
4937 + <widget class="GtkCheckButton" id="terminal_checkbutton">
4938 + <property name="visible">True</property>
4939 + <property name="can_focus">True</property>
4940 + <property name="label" translatable="yes">Interacts with the terminal</property>
4941 + <property name="use_underline">True</property>
4942 + <property name="relief">GTK_RELIEF_NORMAL</property>
4943 + <property name="focus_on_click">True</property>
4944 + <property name="active">False</property>
4945 + <property name="inconsistent">False</property>
4946 + <property name="draw_indicator">True</property>
4949 + <property name="padding">0</property>
4950 + <property name="expand">False</property>
4951 + <property name="fill">False</property>
4956 + <widget class="GtkCheckButton" id="mail_checkbutton">
4957 + <property name="visible">True</property>
4958 + <property name="can_focus">True</property>
4959 + <property name="label" translatable="yes">Sends email</property>
4960 + <property name="use_underline">True</property>
4961 + <property name="relief">GTK_RELIEF_NORMAL</property>
4962 + <property name="focus_on_click">True</property>
4963 + <property name="active">False</property>
4964 + <property name="inconsistent">False</property>
4965 + <property name="draw_indicator">True</property>
4968 + <property name="padding">0</property>
4969 + <property name="expand">False</property>
4970 + <property name="fill">False</property>
4975 + <property name="padding">0</property>
4976 + <property name="expand">True</property>
4977 + <property name="fill">True</property>
4982 + <property name="tab_expand">False</property>
4983 + <property name="tab_fill">True</property>
4988 + <widget class="GtkLabel" id="label115">
4989 + <property name="visible">True</property>
4990 + <property name="label" translatable="yes">label115</property>
4991 + <property name="use_underline">False</property>
4992 + <property name="use_markup">False</property>
4993 + <property name="justify">GTK_JUSTIFY_LEFT</property>
4994 + <property name="wrap">False</property>
4995 + <property name="selectable">False</property>
4996 + <property name="xalign">0.5</property>
4997 + <property name="yalign">0.5</property>
4998 + <property name="xpad">0</property>
4999 + <property name="ypad">0</property>
5000 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5001 + <property name="width_chars">-1</property>
5002 + <property name="single_line_mode">False</property>
5003 + <property name="angle">0</property>
5006 + <property name="type">tab</property>
5011 + <widget class="GtkVBox" id="vbox69">
5012 + <property name="visible">True</property>
5013 + <property name="homogeneous">False</property>
5014 + <property name="spacing">0</property>
5017 + <widget class="GtkLabel" id="select_manages_label">
5018 + <property name="visible">True</property>
5019 + <property name="label" translatable="yes"><b>Add files/directories that %s manages</b></property>
5020 + <property name="use_underline">False</property>
5021 + <property name="use_markup">True</property>
5022 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5023 + <property name="wrap">False</property>
5024 + <property name="selectable">False</property>
5025 + <property name="xalign">0</property>
5026 + <property name="yalign">0.5</property>
5027 + <property name="xpad">0</property>
5028 + <property name="ypad">0</property>
5029 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5030 + <property name="width_chars">-1</property>
5031 + <property name="single_line_mode">False</property>
5032 + <property name="angle">0</property>
5035 + <property name="padding">5</property>
5036 + <property name="expand">False</property>
5037 + <property name="fill">False</property>
5042 + <widget class="GtkHBox" id="hbox1">
5043 + <property name="visible">True</property>
5044 + <property name="homogeneous">False</property>
5045 + <property name="spacing">12</property>
5048 + <widget class="GtkVBox" id="vbox3">
5049 + <property name="visible">True</property>
5050 + <property name="homogeneous">False</property>
5051 + <property name="spacing">6</property>
5054 + <widget class="GtkButton" id="button2">
5055 + <property name="visible">True</property>
5056 + <property name="can_focus">True</property>
5057 + <property name="relief">GTK_RELIEF_NORMAL</property>
5058 + <property name="focus_on_click">True</property>
5059 + <signal name="clicked" handler="on_add_clicked" last_modification_time="Wed, 21 Feb 2007 18:47:51 GMT"/>
5062 + <widget class="GtkAlignment" id="alignment6">
5063 + <property name="visible">True</property>
5064 + <property name="xalign">0.5</property>
5065 + <property name="yalign">0.5</property>
5066 + <property name="xscale">0</property>
5067 + <property name="yscale">0</property>
5068 + <property name="top_padding">0</property>
5069 + <property name="bottom_padding">0</property>
5070 + <property name="left_padding">0</property>
5071 + <property name="right_padding">0</property>
5074 + <widget class="GtkHBox" id="hbox4">
5075 + <property name="visible">True</property>
5076 + <property name="homogeneous">False</property>
5077 + <property name="spacing">2</property>
5080 + <widget class="GtkImage" id="image3">
5081 + <property name="visible">True</property>
5082 + <property name="stock">gtk-add</property>
5083 + <property name="icon_size">4</property>
5084 + <property name="xalign">0.5</property>
5085 + <property name="yalign">0.5</property>
5086 + <property name="xpad">0</property>
5087 + <property name="ypad">0</property>
5090 + <property name="padding">0</property>
5091 + <property name="expand">False</property>
5092 + <property name="fill">False</property>
5097 + <widget class="GtkLabel" id="label17">
5098 + <property name="visible">True</property>
5099 + <property name="label">Add File</property>
5100 + <property name="use_underline">True</property>
5101 + <property name="use_markup">False</property>
5102 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5103 + <property name="wrap">False</property>
5104 + <property name="selectable">False</property>
5105 + <property name="xalign">0.5</property>
5106 + <property name="yalign">0.5</property>
5107 + <property name="xpad">0</property>
5108 + <property name="ypad">0</property>
5109 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5110 + <property name="width_chars">-1</property>
5111 + <property name="single_line_mode">False</property>
5112 + <property name="angle">0</property>
5115 + <property name="padding">0</property>
5116 + <property name="expand">False</property>
5117 + <property name="fill">False</property>
5126 + <property name="padding">0</property>
5127 + <property name="expand">False</property>
5128 + <property name="fill">False</property>
5133 + <widget class="GtkButton" id="button9">
5134 + <property name="visible">True</property>
5135 + <property name="can_focus">True</property>
5136 + <property name="relief">GTK_RELIEF_NORMAL</property>
5137 + <property name="focus_on_click">True</property>
5138 + <signal name="clicked" handler="on_add_dir_clicked" last_modification_time="Wed, 21 Feb 2007 22:15:43 GMT"/>
5141 + <widget class="GtkAlignment" id="alignment5">
5142 + <property name="visible">True</property>
5143 + <property name="xalign">0.5</property>
5144 + <property name="yalign">0.5</property>
5145 + <property name="xscale">0</property>
5146 + <property name="yscale">0</property>
5147 + <property name="top_padding">0</property>
5148 + <property name="bottom_padding">0</property>
5149 + <property name="left_padding">0</property>
5150 + <property name="right_padding">0</property>
5153 + <widget class="GtkHBox" id="hbox3">
5154 + <property name="visible">True</property>
5155 + <property name="homogeneous">False</property>
5156 + <property name="spacing">2</property>
5159 + <widget class="GtkImage" id="image2">
5160 + <property name="visible">True</property>
5161 + <property name="stock">gtk-add</property>
5162 + <property name="icon_size">4</property>
5163 + <property name="xalign">0.5</property>
5164 + <property name="yalign">0.5</property>
5165 + <property name="xpad">0</property>
5166 + <property name="ypad">0</property>
5169 + <property name="padding">0</property>
5170 + <property name="expand">False</property>
5171 + <property name="fill">False</property>
5176 + <widget class="GtkLabel" id="label16">
5177 + <property name="visible">True</property>
5178 + <property name="label">Add Directory</property>
5179 + <property name="use_underline">True</property>
5180 + <property name="use_markup">False</property>
5181 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5182 + <property name="wrap">False</property>
5183 + <property name="selectable">False</property>
5184 + <property name="xalign">0.5</property>
5185 + <property name="yalign">0.5</property>
5186 + <property name="xpad">0</property>
5187 + <property name="ypad">0</property>
5188 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5189 + <property name="width_chars">-1</property>
5190 + <property name="single_line_mode">False</property>
5191 + <property name="angle">0</property>
5194 + <property name="padding">0</property>
5195 + <property name="expand">False</property>
5196 + <property name="fill">False</property>
5205 + <property name="padding">0</property>
5206 + <property name="expand">False</property>
5207 + <property name="fill">False</property>
5212 + <widget class="GtkButton" id="button4">
5213 + <property name="visible">True</property>
5214 + <property name="can_focus">True</property>
5215 + <property name="label">gtk-delete</property>
5216 + <property name="use_stock">True</property>
5217 + <property name="relief">GTK_RELIEF_NORMAL</property>
5218 + <property name="focus_on_click">True</property>
5219 + <signal name="clicked" handler="on_delete_clicked" last_modification_time="Wed, 21 Feb 2007 18:48:10 GMT"/>
5220 + <accelerator key="Delete" modifiers="0" signal="clicked"/>
5223 + <property name="padding">0</property>
5224 + <property name="expand">False</property>
5225 + <property name="fill">False</property>
5230 + <property name="padding">4</property>
5231 + <property name="expand">False</property>
5232 + <property name="fill">False</property>
5237 + <widget class="GtkScrolledWindow" id="scrolledwindow2">
5238 + <property name="visible">True</property>
5239 + <property name="can_focus">True</property>
5240 + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
5241 + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
5242 + <property name="shadow_type">GTK_SHADOW_IN</property>
5243 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
5246 + <widget class="GtkTreeView" id="write_treeview">
5247 + <property name="visible">True</property>
5248 + <property name="tooltip" translatable="yes">Files/Directories which the %s "manages". Pid Files, Log Files, /var/lib Files ...</property>
5249 + <property name="can_focus">True</property>
5250 + <property name="headers_visible">False</property>
5251 + <property name="rules_hint">False</property>
5252 + <property name="reorderable">False</property>
5253 + <property name="enable_search">True</property>
5254 + <property name="fixed_height_mode">False</property>
5255 + <property name="hover_selection">False</property>
5256 + <property name="hover_expand">False</property>
5261 + <property name="padding">0</property>
5262 + <property name="expand">True</property>
5263 + <property name="fill">True</property>
5268 + <property name="padding">0</property>
5269 + <property name="expand">True</property>
5270 + <property name="fill">True</property>
5275 + <property name="tab_expand">False</property>
5276 + <property name="tab_fill">True</property>
5281 + <widget class="GtkLabel" id="label116">
5282 + <property name="visible">True</property>
5283 + <property name="label" translatable="yes">label116</property>
5284 + <property name="use_underline">False</property>
5285 + <property name="use_markup">False</property>
5286 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5287 + <property name="wrap">False</property>
5288 + <property name="selectable">False</property>
5289 + <property name="xalign">0.5</property>
5290 + <property name="yalign">0.5</property>
5291 + <property name="xpad">0</property>
5292 + <property name="ypad">0</property>
5293 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5294 + <property name="width_chars">-1</property>
5295 + <property name="single_line_mode">False</property>
5296 + <property name="angle">0</property>
5299 + <property name="type">tab</property>
5304 + <widget class="GtkVBox" id="vbox70">
5305 + <property name="visible">True</property>
5306 + <property name="homogeneous">False</property>
5307 + <property name="spacing">0</property>
5310 + <widget class="GtkLabel" id="select_booleans_label">
5311 + <property name="visible">True</property>
5312 + <property name="label" translatable="yes"><b>Add booleans from the %s policy:</b></property>
5313 + <property name="use_underline">False</property>
5314 + <property name="use_markup">True</property>
5315 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5316 + <property name="wrap">False</property>
5317 + <property name="selectable">False</property>
5318 + <property name="xalign">0</property>
5319 + <property name="yalign">0.5</property>
5320 + <property name="xpad">0</property>
5321 + <property name="ypad">0</property>
5322 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5323 + <property name="width_chars">-1</property>
5324 + <property name="single_line_mode">False</property>
5325 + <property name="angle">0</property>
5328 + <property name="padding">5</property>
5329 + <property name="expand">False</property>
5330 + <property name="fill">False</property>
5335 + <widget class="GtkHBox" id="hbox1">
5336 + <property name="visible">True</property>
5337 + <property name="homogeneous">False</property>
5338 + <property name="spacing">12</property>
5341 + <widget class="GtkVBox" id="vbox3">
5342 + <property name="visible">True</property>
5343 + <property name="homogeneous">False</property>
5344 + <property name="spacing">6</property>
5347 + <widget class="GtkButton" id="button2">
5348 + <property name="visible">True</property>
5349 + <property name="can_focus">True</property>
5350 + <property name="relief">GTK_RELIEF_NORMAL</property>
5351 + <property name="focus_on_click">True</property>
5352 + <signal name="clicked" handler="on_add_boolean_clicked" last_modification_time="Wed, 17 Oct 2007 00:02:27 GMT"/>
5355 + <widget class="GtkAlignment" id="alignment6">
5356 + <property name="visible">True</property>
5357 + <property name="xalign">0.5</property>
5358 + <property name="yalign">0.5</property>
5359 + <property name="xscale">0</property>
5360 + <property name="yscale">0</property>
5361 + <property name="top_padding">0</property>
5362 + <property name="bottom_padding">0</property>
5363 + <property name="left_padding">0</property>
5364 + <property name="right_padding">0</property>
5367 + <widget class="GtkHBox" id="hbox4">
5368 + <property name="visible">True</property>
5369 + <property name="homogeneous">False</property>
5370 + <property name="spacing">2</property>
5373 + <widget class="GtkImage" id="image3">
5374 + <property name="visible">True</property>
5375 + <property name="stock">gtk-add</property>
5376 + <property name="icon_size">4</property>
5377 + <property name="xalign">0.5</property>
5378 + <property name="yalign">0.5</property>
5379 + <property name="xpad">0</property>
5380 + <property name="ypad">0</property>
5383 + <property name="padding">0</property>
5384 + <property name="expand">False</property>
5385 + <property name="fill">False</property>
5390 + <widget class="GtkLabel" id="label17">
5391 + <property name="visible">True</property>
5392 + <property name="label">Add Boolean</property>
5393 + <property name="use_underline">True</property>
5394 + <property name="use_markup">False</property>
5395 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5396 + <property name="wrap">False</property>
5397 + <property name="selectable">False</property>
5398 + <property name="xalign">0.5</property>
5399 + <property name="yalign">0.5</property>
5400 + <property name="xpad">0</property>
5401 + <property name="ypad">0</property>
5402 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5403 + <property name="width_chars">-1</property>
5404 + <property name="single_line_mode">False</property>
5405 + <property name="angle">0</property>
5408 + <property name="padding">0</property>
5409 + <property name="expand">False</property>
5410 + <property name="fill">False</property>
5419 + <property name="padding">0</property>
5420 + <property name="expand">False</property>
5421 + <property name="fill">False</property>
5426 + <widget class="GtkButton" id="button4">
5427 + <property name="visible">True</property>
5428 + <property name="can_focus">True</property>
5429 + <property name="label">gtk-delete</property>
5430 + <property name="use_stock">True</property>
5431 + <property name="relief">GTK_RELIEF_NORMAL</property>
5432 + <property name="focus_on_click">True</property>
5433 + <signal name="clicked" handler="on_delete_boolean_clicked" last_modification_time="Wed, 17 Oct 2007 00:02:39 GMT"/>
5434 + <accelerator key="Delete" modifiers="0" signal="clicked"/>
5437 + <property name="padding">0</property>
5438 + <property name="expand">False</property>
5439 + <property name="fill">False</property>
5444 + <property name="padding">4</property>
5445 + <property name="expand">False</property>
5446 + <property name="fill">True</property>
5451 + <widget class="GtkScrolledWindow" id="scrolledwindow2">
5452 + <property name="visible">True</property>
5453 + <property name="can_focus">True</property>
5454 + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
5455 + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
5456 + <property name="shadow_type">GTK_SHADOW_IN</property>
5457 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
5460 + <widget class="GtkTreeView" id="boolean_treeview">
5461 + <property name="visible">True</property>
5462 + <property name="tooltip" translatable="yes">Add/Remove booleans used by the %s domain</property>
5463 + <property name="can_focus">True</property>
5464 + <property name="headers_visible">True</property>
5465 + <property name="rules_hint">False</property>
5466 + <property name="reorderable">False</property>
5467 + <property name="enable_search">True</property>
5468 + <property name="fixed_height_mode">False</property>
5469 + <property name="hover_selection">False</property>
5470 + <property name="hover_expand">False</property>
5475 + <property name="padding">0</property>
5476 + <property name="expand">True</property>
5477 + <property name="fill">True</property>
5482 + <property name="padding">0</property>
5483 + <property name="expand">True</property>
5484 + <property name="fill">True</property>
5489 + <property name="tab_expand">False</property>
5490 + <property name="tab_fill">True</property>
5495 + <widget class="GtkLabel" id="GtkLabel">
5496 + <property name="visible">True</property>
5497 + <property name="label" translatable="yes"></property>
5498 + <property name="use_underline">False</property>
5499 + <property name="use_markup">False</property>
5500 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5501 + <property name="wrap">False</property>
5502 + <property name="selectable">False</property>
5503 + <property name="xalign">0.5</property>
5504 + <property name="yalign">0.5</property>
5505 + <property name="xpad">0</property>
5506 + <property name="ypad">0</property>
5507 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5508 + <property name="width_chars">-1</property>
5509 + <property name="single_line_mode">False</property>
5510 + <property name="angle">0</property>
5513 + <property name="type">tab</property>
5518 + <widget class="GtkVBox" id="vbox71">
5519 + <property name="visible">True</property>
5520 + <property name="homogeneous">False</property>
5521 + <property name="spacing">0</property>
5524 + <widget class="GtkLabel" id="select_dir_label">
5525 + <property name="visible">True</property>
5526 + <property name="label" translatable="yes"><b>Which directory you will generate the %s policy?</b></property>
5527 + <property name="use_underline">False</property>
5528 + <property name="use_markup">True</property>
5529 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5530 + <property name="wrap">False</property>
5531 + <property name="selectable">False</property>
5532 + <property name="xalign">0</property>
5533 + <property name="yalign">0.5</property>
5534 + <property name="xpad">0</property>
5535 + <property name="ypad">0</property>
5536 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5537 + <property name="width_chars">-1</property>
5538 + <property name="single_line_mode">False</property>
5539 + <property name="angle">0</property>
5542 + <property name="padding">0</property>
5543 + <property name="expand">False</property>
5544 + <property name="fill">False</property>
5549 + <widget class="GtkHBox" id="hbox6">
5550 + <property name="visible">True</property>
5551 + <property name="homogeneous">False</property>
5552 + <property name="spacing">12</property>
5555 + <widget class="GtkLabel" id="label18">
5556 + <property name="visible">True</property>
5557 + <property name="label" translatable="yes">Policy Directory</property>
5558 + <property name="use_underline">False</property>
5559 + <property name="use_markup">False</property>
5560 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5561 + <property name="wrap">False</property>
5562 + <property name="selectable">False</property>
5563 + <property name="xalign">0.5</property>
5564 + <property name="yalign">0.5</property>
5565 + <property name="xpad">0</property>
5566 + <property name="ypad">0</property>
5567 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5568 + <property name="width_chars">-1</property>
5569 + <property name="single_line_mode">False</property>
5570 + <property name="angle">0</property>
5573 + <property name="padding">5</property>
5574 + <property name="expand">False</property>
5575 + <property name="fill">False</property>
5580 + <widget class="GtkEntry" id="output_entry">
5581 + <property name="visible">True</property>
5582 + <property name="can_focus">True</property>
5583 + <property name="editable">True</property>
5584 + <property name="visibility">True</property>
5585 + <property name="max_length">0</property>
5586 + <property name="text" translatable="yes"></property>
5587 + <property name="has_frame">True</property>
5588 + <property name="invisible_char">•</property>
5589 + <property name="activates_default">False</property>
5592 + <property name="padding">0</property>
5593 + <property name="expand">True</property>
5594 + <property name="fill">True</property>
5599 + <widget class="GtkButton" id="output_button">
5600 + <property name="visible">True</property>
5601 + <property name="can_focus">True</property>
5602 + <property name="label" translatable="yes">...</property>
5603 + <property name="use_underline">True</property>
5604 + <property name="relief">GTK_RELIEF_NORMAL</property>
5605 + <property name="focus_on_click">True</property>
5608 + <property name="padding">0</property>
5609 + <property name="expand">False</property>
5610 + <property name="fill">False</property>
5615 + <property name="padding">12</property>
5616 + <property name="expand">False</property>
5617 + <property name="fill">False</property>
5622 + <property name="tab_expand">False</property>
5623 + <property name="tab_fill">True</property>
5628 + <widget class="GtkLabel" id="GtkLabel">
5629 + <property name="visible">True</property>
5630 + <property name="label" translatable="yes"></property>
5631 + <property name="use_underline">False</property>
5632 + <property name="use_markup">False</property>
5633 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5634 + <property name="wrap">False</property>
5635 + <property name="selectable">False</property>
5636 + <property name="xalign">0.5</property>
5637 + <property name="yalign">0.5</property>
5638 + <property name="xpad">0</property>
5639 + <property name="ypad">0</property>
5640 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5641 + <property name="width_chars">-1</property>
5642 + <property name="single_line_mode">False</property>
5643 + <property name="angle">0</property>
5646 + <property name="type">tab</property>
5651 + <property name="padding">0</property>
5652 + <property name="expand">True</property>
5653 + <property name="fill">True</property>
5658 + <widget class="GtkHButtonBox" id="hbuttonbox2">
5659 + <property name="visible">True</property>
5660 + <property name="layout_style">GTK_BUTTONBOX_END</property>
5661 + <property name="spacing">0</property>
5664 + <widget class="GtkButton" id="cancel_button">
5665 + <property name="visible">True</property>
5666 + <property name="can_default">True</property>
5667 + <property name="can_focus">True</property>
5668 + <property name="label">gtk-cancel</property>
5669 + <property name="use_stock">True</property>
5670 + <property name="relief">GTK_RELIEF_NORMAL</property>
5671 + <property name="focus_on_click">True</property>
5672 + <signal name="activate" handler="on_cancel_activate" last_modification_time="Wed, 02 Feb 2011 21:21:29 GMT"/>
5677 + <widget class="GtkButton" id="back_button">
5678 + <property name="visible">True</property>
5679 + <property name="can_default">True</property>
5680 + <property name="can_focus">True</property>
5681 + <property name="label">gtk-go-back</property>
5682 + <property name="use_stock">True</property>
5683 + <property name="relief">GTK_RELIEF_NORMAL</property>
5684 + <property name="focus_on_click">True</property>
5685 + <signal name="activate" handler="on_back_activate" last_modification_time="Wed, 02 Feb 2011 21:22:00 GMT"/>
5690 + <widget class="GtkButton" id="forward_button">
5691 + <property name="visible">True</property>
5692 + <property name="can_default">True</property>
5693 + <property name="can_focus">True</property>
5694 + <property name="label">gtk-media-forward</property>
5695 + <property name="use_stock">True</property>
5696 + <property name="relief">GTK_RELIEF_NORMAL</property>
5697 + <property name="focus_on_click">True</property>
5698 + <signal name="activate" handler="on_forward_activate" last_modification_time="Wed, 02 Feb 2011 21:22:32 GMT"/>
5703 + <property name="padding">5</property>
5704 + <property name="expand">False</property>
5705 + <property name="fill">False</property>
5712 +<widget class="GtkDialog" id="boolean_dialog">
5713 + <property name="border_width">12</property>
5714 + <property name="title" translatable="yes">Add Booleans Dialog</property>
5715 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
5716 + <property name="window_position">GTK_WIN_POS_MOUSE</property>
5717 + <property name="modal">False</property>
5718 + <property name="default_width">400</property>
5719 + <property name="resizable">True</property>
5720 + <property name="destroy_with_parent">False</property>
5721 + <property name="decorated">True</property>
5722 + <property name="skip_taskbar_hint">False</property>
5723 + <property name="skip_pager_hint">False</property>
5724 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
5725 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
5726 + <property name="focus_on_map">True</property>
5727 + <property name="urgency_hint">False</property>
5728 + <property name="has_separator">False</property>
5730 + <child internal-child="vbox">
5731 + <widget class="GtkVBox" id="dialog-vbox2">
5732 + <property name="visible">True</property>
5733 + <property name="homogeneous">False</property>
5734 + <property name="spacing">6</property>
5736 + <child internal-child="action_area">
5737 + <widget class="GtkHButtonBox" id="dialog-action_area2">
5738 + <property name="visible">True</property>
5739 + <property name="layout_style">GTK_BUTTONBOX_END</property>
5742 + <widget class="GtkButton" id="cancelbutton1">
5743 + <property name="visible">True</property>
5744 + <property name="can_default">True</property>
5745 + <property name="can_focus">True</property>
5746 + <property name="label">gtk-cancel</property>
5747 + <property name="use_stock">True</property>
5748 + <property name="relief">GTK_RELIEF_NORMAL</property>
5749 + <property name="focus_on_click">True</property>
5750 + <property name="response_id">-6</property>
5755 + <widget class="GtkButton" id="okbutton1">
5756 + <property name="visible">True</property>
5757 + <property name="can_default">True</property>
5758 + <property name="can_focus">True</property>
5759 + <property name="label">gtk-add</property>
5760 + <property name="use_stock">True</property>
5761 + <property name="relief">GTK_RELIEF_NORMAL</property>
5762 + <property name="focus_on_click">True</property>
5763 + <property name="response_id">-5</property>
5768 + <property name="padding">0</property>
5769 + <property name="expand">False</property>
5770 + <property name="fill">True</property>
5771 + <property name="pack_type">GTK_PACK_END</property>
5776 + <widget class="GtkTable" id="table6">
5777 + <property name="visible">True</property>
5778 + <property name="n_rows">2</property>
5779 + <property name="n_columns">2</property>
5780 + <property name="homogeneous">False</property>
5781 + <property name="row_spacing">6</property>
5782 + <property name="column_spacing">12</property>
5785 + <widget class="GtkLabel" id="label48">
5786 + <property name="visible">True</property>
5787 + <property name="label" translatable="yes">Boolean Name</property>
5788 + <property name="use_underline">False</property>
5789 + <property name="use_markup">False</property>
5790 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5791 + <property name="wrap">False</property>
5792 + <property name="selectable">False</property>
5793 + <property name="xalign">0</property>
5794 + <property name="yalign">0.5</property>
5795 + <property name="xpad">0</property>
5796 + <property name="ypad">0</property>
5797 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5798 + <property name="width_chars">-1</property>
5799 + <property name="single_line_mode">False</property>
5800 + <property name="angle">0</property>
5803 + <property name="left_attach">0</property>
5804 + <property name="right_attach">1</property>
5805 + <property name="top_attach">0</property>
5806 + <property name="bottom_attach">1</property>
5807 + <property name="x_options">fill</property>
5808 + <property name="y_options"></property>
5813 + <widget class="GtkLabel" id="label49">
5814 + <property name="visible">True</property>
5815 + <property name="label" translatable="yes">Description</property>
5816 + <property name="use_underline">False</property>
5817 + <property name="use_markup">False</property>
5818 + <property name="justify">GTK_JUSTIFY_LEFT</property>
5819 + <property name="wrap">False</property>
5820 + <property name="selectable">False</property>
5821 + <property name="xalign">0</property>
5822 + <property name="yalign">0.5</property>
5823 + <property name="xpad">0</property>
5824 + <property name="ypad">0</property>
5825 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
5826 + <property name="width_chars">-1</property>
5827 + <property name="single_line_mode">False</property>
5828 + <property name="angle">0</property>
5831 + <property name="left_attach">0</property>
5832 + <property name="right_attach">1</property>
5833 + <property name="top_attach">1</property>
5834 + <property name="bottom_attach">2</property>
5835 + <property name="x_options">fill</property>
5836 + <property name="y_options"></property>
5841 + <widget class="GtkEntry" id="boolean_name_entry">
5842 + <property name="visible">True</property>
5843 + <property name="can_focus">True</property>
5844 + <property name="editable">True</property>
5845 + <property name="visibility">True</property>
5846 + <property name="max_length">0</property>
5847 + <property name="text" translatable="yes"></property>
5848 + <property name="has_frame">True</property>
5849 + <property name="invisible_char">•</property>
5850 + <property name="activates_default">False</property>
5853 + <property name="left_attach">1</property>
5854 + <property name="right_attach">2</property>
5855 + <property name="top_attach">0</property>
5856 + <property name="bottom_attach">1</property>
5857 + <property name="y_options"></property>
5862 + <widget class="GtkEntry" id="boolean_description_entry">
5863 + <property name="visible">True</property>
5864 + <property name="can_focus">True</property>
5865 + <property name="editable">True</property>
5866 + <property name="visibility">True</property>
5867 + <property name="max_length">0</property>
5868 + <property name="text" translatable="yes"></property>
5869 + <property name="has_frame">True</property>
5870 + <property name="invisible_char">•</property>
5871 + <property name="activates_default">False</property>
5874 + <property name="left_attach">1</property>
5875 + <property name="right_attach">2</property>
5876 + <property name="top_attach">1</property>
5877 + <property name="bottom_attach">2</property>
5878 + <property name="y_options"></property>
5883 + <property name="padding">0</property>
5884 + <property name="expand">True</property>
5885 + <property name="fill">True</property>
5893 diff -up policycoreutils-2.1.8/gui/polgen.gladep.gui policycoreutils-2.1.8/gui/polgen.gladep
5894 --- policycoreutils-2.1.8/gui/polgen.gladep.gui 2011-11-07 15:12:01.903834231 -0500
5895 +++ policycoreutils-2.1.8/gui/polgen.gladep 2011-11-07 15:12:01.903834231 -0500
5897 +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
5898 +<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
5902 + <program_name></program_name>
5904 diff -up policycoreutils-2.1.8/gui/polgengui.py.gui policycoreutils-2.1.8/gui/polgengui.py
5905 --- policycoreutils-2.1.8/gui/polgengui.py.gui 2011-11-07 15:12:01.904834232 -0500
5906 +++ policycoreutils-2.1.8/gui/polgengui.py 2011-11-07 15:12:01.904834232 -0500
5908 +#!/usr/bin/python -Es
5910 +# polgengui.py - GUI for SELinux Config tool in system-config-selinux
5912 +# Dan Walsh <dwalsh@redhat.com>
5914 +# Copyright (C) 2007-2011 Red Hat
5916 +# This program is free software; you can redistribute it and/or modify
5917 +# it under the terms of the GNU General Public License as published by
5918 +# the Free Software Foundation; either version 2 of the License, or
5919 +# (at your option) any later version.
5921 +# This program is distributed in the hope that it will be useful,
5922 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
5923 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5924 +# GNU General Public License for more details.
5926 +# You should have received a copy of the GNU General Public License
5927 +# along with this program; if not, write to the Free Software
5928 +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
5945 +PROGNAME="policycoreutils"
5948 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
5949 +gettext.textdomain(PROGNAME)
5951 + gettext.install(PROGNAME,
5952 + localedir="/usr/share/locale",
5954 + codeset = 'utf-8')
5956 + import __builtin__
5957 + __builtin__.__dict__['_'] = unicode
5959 +gnome.program_init("SELinux Policy Generation Tool", "5")
5963 +sys.path.append('/usr/share/system-config-selinux')
5964 +sys.path.append('.')
5966 +# From John Hunter http://www.daa.com.au/pipermail/pygtk/2003-February/004454.html
5967 +def foreach(model, path, iter, selected):
5968 + selected.append(model.get_value(iter, 0))
5971 +## Pull in the Glade file
5973 +if os.access("polgen.glade", os.F_OK):
5974 + xml = gtk.glade.XML ("polgen.glade", domain=PROGNAME)
5976 + xml = gtk.glade.XML ("/usr/share/system-config-selinux/polgen.glade", domain=PROGNAME)
5983 + SELECT_TYPE_PAGE = 0
5985 + EXISTING_USER_PAGE = 2
5986 + TRANSITION_PAGE = 3
5987 + USER_TRANSITION_PAGE = 4
5992 + COMMON_APPS_PAGE = 9
5995 + SELECT_DIR_PAGE = 12
5998 + def __init__(self):
6000 + self.notebook = xml.get_widget ("notebook")
6001 + self.label_dict = {}
6002 + self.tooltip_dict = {}
6003 + label = xml.get_widget ("select_label")
6004 + self.label_dict[label] = label.get_text()
6006 + label = xml.get_widget ("select_user_roles_label")
6007 + self.label_dict[label] = label.get_text()
6009 + label = xml.get_widget ("select_dir_label")
6010 + self.label_dict[label] = label.get_text()
6012 + label = xml.get_widget ("select_domain_admin_label")
6013 + self.label_dict[label] = label.get_text()
6015 + label = xml.get_widget ("select_in_label")
6016 + self.label_dict[label] = label.get_text()
6018 + label = xml.get_widget ("select_out_label")
6019 + self.label_dict[label] = label.get_text()
6021 + label = xml.get_widget ("select_common_label")
6022 + self.label_dict[label] = label.get_text()
6024 + label = xml.get_widget ("select_manages_label")
6025 + self.label_dict[label] = label.get_text()
6027 + label = xml.get_widget ("select_booleans_label")
6028 + self.label_dict[label] = label.get_text()
6030 + label = xml.get_widget ("existing_user_treeview")
6031 + self.tooltip_dict[label] = label.get_tooltip_text()
6033 + label = xml.get_widget ("transition_treeview")
6034 + self.tooltip_dict[label] = label.get_tooltip_text()
6036 + label = xml.get_widget ("in_tcp_all_checkbutton")
6037 + self.tooltip_dict[label] = label.get_tooltip_text()
6039 + label = xml.get_widget ("in_tcp_reserved_checkbutton")
6040 + self.tooltip_dict[label] = label.get_tooltip_text()
6042 + label = xml.get_widget ("in_tcp_unreserved_checkbutton")
6043 + self.tooltip_dict[label] = label.get_tooltip_text()
6045 + label = xml.get_widget ("in_tcp_entry")
6046 + self.tooltip_dict[label] = label.get_tooltip_text()
6048 + label = xml.get_widget ("in_udp_all_checkbutton")
6049 + self.tooltip_dict[label] = label.get_tooltip_text()
6051 + label = xml.get_widget ("in_udp_reserved_checkbutton")
6052 + self.tooltip_dict[label] = label.get_tooltip_text()
6054 + label = xml.get_widget ("in_udp_unreserved_checkbutton")
6055 + self.tooltip_dict[label] = label.get_tooltip_text()
6057 + label = xml.get_widget ("in_udp_entry")
6058 + self.tooltip_dict[label] = label.get_tooltip_text()
6060 + label = xml.get_widget ("out_tcp_entry")
6061 + self.tooltip_dict[label] = label.get_tooltip_text()
6063 + label = xml.get_widget ("out_udp_entry")
6064 + self.tooltip_dict[label] = label.get_tooltip_text()
6066 + label = xml.get_widget ("out_tcp_all_checkbutton")
6067 + self.tooltip_dict[label] = label.get_tooltip_text()
6069 + label = xml.get_widget ("out_udp_all_checkbutton")
6070 + self.tooltip_dict[label] = label.get_tooltip_text()
6072 + label = xml.get_widget ("boolean_treeview")
6073 + self.tooltip_dict[label] = label.get_tooltip_text()
6075 + label = xml.get_widget ("write_treeview")
6076 + self.tooltip_dict[label] = label.get_tooltip_text()
6079 + self.all_types = polgen.get_all_types()
6080 + self.all_modules = polgen.get_all_modules()
6081 + self.all_roles = polgen.get_all_roles()
6082 + self.all_users = polgen.get_all_users()
6083 + except RuntimeError, e:
6084 + self.all_types = []
6085 + self.all_modules = []
6086 + self.all_roles = []
6087 + self.all_users = []
6088 + self.error(str(e))
6091 + xml.signal_connect("on_delete_clicked", self.delete)
6092 + xml.signal_connect("on_delete_boolean_clicked", self.delete_boolean)
6093 + xml.signal_connect("on_exec_select_clicked", self.exec_select)
6094 + xml.signal_connect("on_init_script_select_clicked", self.init_script_select)
6095 + xml.signal_connect("on_add_clicked", self.add)
6096 + xml.signal_connect("on_add_boolean_clicked", self.add_boolean)
6097 + xml.signal_connect("on_add_dir_clicked", self.add_dir)
6098 + xml.signal_connect("on_about_clicked", self.on_about_clicked)
6099 + xml.get_widget ("cancel_button").connect("clicked",self.quit)
6100 + self.forward_button = xml.get_widget ("forward_button")
6101 + self.forward_button.connect("clicked",self.forward)
6102 + self.back_button = xml.get_widget ("back_button")
6103 + self.back_button.connect("clicked",self.back)
6105 + self.boolean_dialog = xml.get_widget ("boolean_dialog")
6106 + self.boolean_name_entry = xml.get_widget ("boolean_name_entry")
6107 + self.boolean_description_entry = xml.get_widget ("boolean_description_entry")
6110 + for i in polgen.USERS:
6111 + self.pages[i] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.TRANSITION_PAGE, self.ROLE_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
6112 + self.pages[polgen.RUSER] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.ADMIN_PAGE, self.USER_TRANSITION_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
6113 + self.pages[polgen.LUSER] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.TRANSITION_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
6114 + self.pages[polgen.SANDBOX] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE]
6115 + self.pages[polgen.EUSER] = [ self.SELECT_TYPE_PAGE, self.EXISTING_USER_PAGE, self.TRANSITION_PAGE, self.ROLE_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
6117 + for i in polgen.APPLICATIONS:
6118 + self.pages[i] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.COMMON_APPS_PAGE, self.FILES_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE]
6119 + self.pages[polgen.USER] = [ self.SELECT_TYPE_PAGE, self.APP_PAGE, self.USER_TRANSITION_PAGE, self.IN_NET_PAGE, self.OUT_NET_PAGE, self.COMMON_APPS_PAGE, self.FILES_PAGE, self.BOOLEAN_PAGE, self.SELECT_DIR_PAGE ]
6121 + self.current_page = 0
6122 + self.back_button.set_sensitive(0)
6124 + self.network_buttons = {}
6126 + self.in_tcp_all_checkbutton = xml.get_widget ("in_tcp_all_checkbutton")
6127 + self.in_tcp_reserved_checkbutton = xml.get_widget ("in_tcp_reserved_checkbutton")
6128 + self.in_tcp_unreserved_checkbutton = xml.get_widget ("in_tcp_unreserved_checkbutton")
6129 + self.in_tcp_entry = self.xml.get_widget("in_tcp_entry")
6130 + self.network_buttons[self.in_tcp_all_checkbutton] = [ self.in_tcp_reserved_checkbutton, self.in_tcp_unreserved_checkbutton, self.in_tcp_entry ]
6133 + self.out_tcp_all_checkbutton = xml.get_widget ("out_tcp_all_checkbutton")
6134 + self.out_tcp_reserved_checkbutton = xml.get_widget ("out_tcp_reserved_checkbutton")
6135 + self.out_tcp_unreserved_checkbutton = xml.get_widget ("out_tcp_unreserved_checkbutton")
6136 + self.out_tcp_entry = self.xml.get_widget("out_tcp_entry")
6138 + self.network_buttons[self.out_tcp_all_checkbutton] = [ self.out_tcp_entry ]
6140 + self.in_udp_all_checkbutton = xml.get_widget ("in_udp_all_checkbutton")
6141 + self.in_udp_reserved_checkbutton = xml.get_widget ("in_udp_reserved_checkbutton")
6142 + self.in_udp_unreserved_checkbutton = xml.get_widget ("in_udp_unreserved_checkbutton")
6143 + self.in_udp_entry = self.xml.get_widget("in_udp_entry")
6145 + self.network_buttons[self.in_udp_all_checkbutton] = [ self.in_udp_reserved_checkbutton, self.in_udp_unreserved_checkbutton, self.in_udp_entry ]
6147 + self.out_udp_all_checkbutton = xml.get_widget ("out_udp_all_checkbutton")
6148 + self.out_udp_entry = self.xml.get_widget("out_udp_entry")
6149 + self.network_buttons[self.out_udp_all_checkbutton] = [ self.out_udp_entry ]
6151 + for b in self.network_buttons.keys():
6152 + b.connect("clicked",self.network_all_clicked)
6154 + self.boolean_treeview = self.xml.get_widget("boolean_treeview")
6155 + self.boolean_store = gtk.ListStore(gobject.TYPE_STRING,gobject.TYPE_STRING)
6156 + self.boolean_treeview.set_model(self.boolean_store)
6157 + self.boolean_store.set_sort_column_id(0, gtk.SORT_ASCENDING)
6158 + col = gtk.TreeViewColumn(_("Name"), gtk.CellRendererText(), text = 0)
6159 + self.boolean_treeview.append_column(col)
6160 + col = gtk.TreeViewColumn(_("Description"), gtk.CellRendererText(), text = 1)
6161 + self.boolean_treeview.append_column(col)
6163 + self.role_treeview = self.xml.get_widget("role_treeview")
6164 + self.role_store = gtk.ListStore(gobject.TYPE_STRING)
6165 + self.role_treeview.set_model(self.role_store)
6166 + self.role_treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
6167 + self.role_store.set_sort_column_id(0, gtk.SORT_ASCENDING)
6168 + col = gtk.TreeViewColumn(_("Role"), gtk.CellRendererText(), text = 0)
6169 + self.role_treeview.append_column(col)
6171 + self.existing_user_treeview = self.xml.get_widget("existing_user_treeview")
6172 + self.existing_user_store = gtk.ListStore(gobject.TYPE_STRING)
6173 + self.existing_user_treeview.set_model(self.existing_user_store)
6174 + self.existing_user_store.set_sort_column_id(0, gtk.SORT_ASCENDING)
6175 + col = gtk.TreeViewColumn(_("Existing_User"), gtk.CellRendererText(), text = 0)
6176 + self.existing_user_treeview.append_column(col)
6178 + for i in self.all_roles:
6179 + iter = self.role_store.append()
6180 + self.role_store.set_value(iter, 0, i[:-2])
6182 + self.in_tcp_reserved_checkbutton = xml.get_widget ("in_tcp_reserved_checkbutton")
6184 + self.transition_treeview = self.xml.get_widget("transition_treeview")
6185 + self.transition_store = gtk.ListStore(gobject.TYPE_STRING)
6186 + self.transition_treeview.set_model(self.transition_store)
6187 + self.transition_treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
6188 + self.transition_store.set_sort_column_id(0, gtk.SORT_ASCENDING)
6189 + col = gtk.TreeViewColumn(_("Application"), gtk.CellRendererText(), text = 0)
6190 + self.transition_treeview.append_column(col)
6192 + self.user_transition_treeview = self.xml.get_widget("user_transition_treeview")
6193 + self.user_transition_store = gtk.ListStore(gobject.TYPE_STRING)
6194 + self.user_transition_treeview.set_model(self.user_transition_store)
6195 + self.user_transition_treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
6196 + self.user_transition_store.set_sort_column_id(0, gtk.SORT_ASCENDING)
6197 + col = gtk.TreeViewColumn(_("Application"), gtk.CellRendererText(), text = 0)
6198 + self.user_transition_treeview.append_column(col)
6200 + for i in self.all_users:
6201 + iter = self.user_transition_store.append()
6202 + self.user_transition_store.set_value(iter, 0, i[:-2])
6203 + iter = self.existing_user_store.append()
6204 + self.existing_user_store.set_value(iter, 0, i[:-2])
6206 + self.admin_treeview = self.xml.get_widget("admin_treeview")
6207 + self.admin_store = gtk.ListStore(gobject.TYPE_STRING)
6208 + self.admin_treeview.set_model(self.admin_store)
6209 + self.admin_treeview.get_selection().set_mode(gtk.SELECTION_MULTIPLE)
6210 + self.admin_store.set_sort_column_id(0, gtk.SORT_ASCENDING)
6211 + col = gtk.TreeViewColumn(_("Application"), gtk.CellRendererText(), text = 0)
6212 + self.admin_treeview.append_column(col)
6214 + for i in polgen.methods:
6215 + m = re.findall("(.*)%s" % polgen.USER_TRANSITION_INTERFACE, i)
6217 + if "%s_exec_t" % m[0] in self.all_types:
6218 + iter = self.transition_store.append()
6219 + self.transition_store.set_value(iter, 0, m[0])
6222 + m = re.findall("(.*)%s" % polgen.ADMIN_TRANSITION_INTERFACE, i)
6224 + iter = self.admin_store.append()
6225 + self.admin_store.set_value(iter, 0, m[0])
6228 + def confine_application(self):
6229 + return self.get_type() in polgen.APPLICATIONS
6231 + def forward(self, arg):
6232 + type = self.get_type()
6233 + if self.current_page == self.START_PAGE:
6234 + self.back_button.set_sensitive(1)
6236 + if self.pages[type][self.current_page] == self.SELECT_TYPE_PAGE:
6237 + if self.on_select_type_page_next():
6240 + if self.pages[type][self.current_page] == self.IN_NET_PAGE:
6241 + if self.on_in_net_page_next():
6244 + if self.pages[type][self.current_page] == self.OUT_NET_PAGE:
6245 + if self.on_out_net_page_next():
6248 + if self.pages[type][self.current_page] == self.APP_PAGE:
6249 + if self.on_name_page_next():
6252 + if self.pages[type][self.current_page] == self.EXISTING_USER_PAGE:
6253 + if self.on_existing_user_page_next():
6256 + if self.pages[type][self.current_page] == self.SELECT_DIR_PAGE:
6257 + outputdir = self.output_entry.get_text()
6258 + if not os.path.isdir(outputdir):
6259 + self.error(_("%s must be a directory") % outputdir )
6262 + if self.pages[type][self.current_page] == self.FINISH_PAGE:
6263 + self.generate_policy()
6264 + self.xml.get_widget ("cancel_button").set_label(gtk.STOCK_CLOSE)
6266 + self.current_page = self.current_page + 1
6267 + self.notebook.set_current_page(self.pages[type][self.current_page])
6268 + if self.pages[type][self.current_page] == self.FINISH_PAGE:
6269 + self.forward_button.set_label(gtk.STOCK_APPLY)
6271 + def back(self,arg):
6272 + type = self.get_type()
6273 + if self.pages[type][self.current_page] == self.FINISH_PAGE:
6274 + self.forward_button.set_label(gtk.STOCK_GO_FORWARD)
6276 + self.current_page = self.current_page - 1
6277 + self.notebook.set_current_page(self.pages[type][self.current_page])
6278 + if self.pages[type][self.current_page] == self.START_PAGE:
6279 + self.back_button.set_sensitive(0)
6281 + def network_all_clicked(self, button):
6282 + active = button.get_active()
6283 + for b in self.network_buttons[button]:
6284 + b.set_sensitive(not active)
6286 + def verify(self, message, title="" ):
6287 + dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
6288 + gtk.BUTTONS_YES_NO,
6290 + dlg.set_title(title)
6291 + dlg.set_position(gtk.WIN_POS_MOUSE)
6297 + def info(self, message):
6298 + dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
6301 + dlg.set_position(gtk.WIN_POS_MOUSE)
6306 + def error(self, message):
6307 + dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR,
6308 + gtk.BUTTONS_CLOSE,
6310 + dlg.set_position(gtk.WIN_POS_MOUSE)
6315 + def get_name(self):
6316 + if self.existing_user_radiobutton.get_active():
6317 + store, iter = self.existing_user_treeview.get_selection().get_selected()
6319 + raise ValueError(_("You must select a user"))
6320 + return store.get_value(iter, 0)
6322 + return self.name_entry.get_text()
6324 + def get_type(self):
6325 + if self.sandbox_radiobutton.get_active():
6326 + return polgen.SANDBOX
6327 + if self.cgi_radiobutton.get_active():
6329 + if self.user_radiobutton.get_active():
6330 + return polgen.USER
6331 + if self.init_radiobutton.get_active():
6332 + return polgen.DAEMON
6333 + if self.dbus_radiobutton.get_active():
6334 + return polgen.DBUS
6335 + if self.inetd_radiobutton.get_active():
6336 + return polgen.INETD
6337 + if self.login_user_radiobutton.get_active():
6338 + return polgen.LUSER
6339 + if self.admin_user_radiobutton.get_active():
6340 + return polgen.AUSER
6341 + if self.xwindows_user_radiobutton.get_active():
6342 + return polgen.XUSER
6343 + if self.terminal_user_radiobutton.get_active():
6344 + return polgen.TUSER
6345 + if self.root_user_radiobutton.get_active():
6346 + return polgen.RUSER
6347 + if self.existing_user_radiobutton.get_active():
6348 + return polgen.EUSER
6350 + def generate_policy(self, *args):
6351 + outputdir = self.output_entry.get_text()
6353 + my_policy=polgen.policy(self.get_name(), self.get_type())
6355 + iter= self.boolean_store.get_iter_first()
6357 + my_policy.add_boolean(self.boolean_store.get_value(iter, 0), self.boolean_store.get_value(iter, 1))
6358 + iter= self.boolean_store.iter_next(iter)
6360 + if self.get_type() in polgen.APPLICATIONS:
6361 + my_policy.set_program(self.exec_entry.get_text())
6362 + my_policy.gen_symbols()
6364 + my_policy.set_use_syslog(self.syslog_checkbutton.get_active() == 1)
6365 + my_policy.set_use_tmp(self.tmp_checkbutton.get_active() == 1)
6366 + my_policy.set_use_uid(self.uid_checkbutton.get_active() == 1)
6367 + my_policy.set_use_pam(self.pam_checkbutton.get_active() == 1)
6369 + my_policy.set_use_dbus(self.dbus_checkbutton.get_active() == 1)
6370 + my_policy.set_use_audit(self.audit_checkbutton.get_active() == 1)
6371 + my_policy.set_use_terminal(self.terminal_checkbutton.get_active() == 1)
6372 + my_policy.set_use_mail(self.mail_checkbutton.get_active() == 1)
6373 + if self.get_type() is polgen.DAEMON:
6374 + my_policy.set_init_script(self.init_script_entry.get_text())
6375 + if self.get_type() == polgen.USER:
6377 + self.user_transition_treeview.get_selection().selected_foreach(foreach, selected)
6378 + my_policy.set_transition_users(selected)
6380 + if self.get_type() == polgen.RUSER:
6382 + self.admin_treeview.get_selection().selected_foreach(foreach, selected)
6383 + my_policy.set_admin_domains(selected)
6385 + self.user_transition_treeview.get_selection().selected_foreach(foreach, selected)
6386 + my_policy.set_transition_users(selected)
6389 + self.transition_treeview.get_selection().selected_foreach(foreach, selected)
6390 + my_policy.set_transition_domains(selected)
6393 + self.role_treeview.get_selection().selected_foreach(foreach, selected)
6394 + my_policy.set_admin_roles(selected)
6396 + my_policy.set_in_tcp(self.in_tcp_all_checkbutton.get_active(), self.in_tcp_reserved_checkbutton.get_active(), self.in_tcp_unreserved_checkbutton.get_active(), self.in_tcp_entry.get_text())
6397 + my_policy.set_in_udp(self.in_udp_all_checkbutton.get_active(), self.in_udp_reserved_checkbutton.get_active(), self.in_udp_unreserved_checkbutton.get_active(), self.in_udp_entry.get_text())
6398 + my_policy.set_out_tcp(self.out_tcp_all_checkbutton.get_active(), self.out_tcp_entry.get_text())
6399 + my_policy.set_out_udp(self.out_udp_all_checkbutton.get_active(), self.out_udp_entry.get_text())
6401 + iter= self.store.get_iter_first()
6403 + if self.store.get_value(iter, 1) == FILE:
6404 + my_policy.add_file(self.store.get_value(iter, 0))
6406 + my_policy.add_dir(self.store.get_value(iter, 0))
6407 + iter= self.store.iter_next(iter)
6409 + self.info(my_policy.generate(outputdir))
6411 + except ValueError, e:
6412 + self.error(e.message)
6414 + def delete(self, args):
6415 + store, iter = self.view.get_selection().get_selected()
6417 + store.remove(iter)
6418 + self.view.get_selection().select_path ((0,))
6420 + def delete_boolean(self, args):
6421 + store, iter = self.boolean_treeview.get_selection().get_selected()
6423 + store.remove(iter)
6424 + self.boolean_treeview.get_selection().select_path ((0,))
6426 + def add_boolean(self,type):
6427 + self.boolean_name_entry.set_text("")
6428 + self.boolean_description_entry.set_text("")
6429 + rc = self.boolean_dialog.run()
6430 + self.boolean_dialog.hide()
6431 + if rc == gtk.RESPONSE_CANCEL:
6433 + iter = self.boolean_store.append()
6434 + self.boolean_store.set_value(iter, 0, self.boolean_name_entry.get_text())
6435 + self.boolean_store.set_value(iter, 1, self.boolean_description_entry.get_text())
6437 + def __add(self,type):
6438 + rc = self.file_dialog.run()
6439 + self.file_dialog.hide()
6440 + if rc == gtk.RESPONSE_CANCEL:
6442 + for i in self.file_dialog.get_filenames():
6443 + iter = self.store.append()
6444 + self.store.set_value(iter, 0, i)
6445 + self.store.set_value(iter, 1, type)
6447 + def exec_select(self, args):
6448 + self.file_dialog.set_select_multiple(0)
6449 + self.file_dialog.set_title(_("Select executable file to be confined."))
6450 + self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
6451 + self.file_dialog.set_current_folder("/usr/sbin")
6452 + rc = self.file_dialog.run()
6453 + self.file_dialog.hide()
6454 + if rc == gtk.RESPONSE_CANCEL:
6456 + self.exec_entry.set_text(self.file_dialog.get_filename())
6458 + def init_script_select(self, args):
6459 + self.file_dialog.set_select_multiple(0)
6460 + self.file_dialog.set_title(_("Select init script file to be confined."))
6461 + self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
6462 + self.file_dialog.set_current_folder("/etc/rc.d/init.d")
6463 + rc = self.file_dialog.run()
6464 + self.file_dialog.hide()
6465 + if rc == gtk.RESPONSE_CANCEL:
6467 + self.init_script_entry.set_text(self.file_dialog.get_filename())
6469 + def add(self, args):
6470 + self.file_dialog.set_title(_("Select file(s) that confined application creates or writes"))
6471 + self.file_dialog.set_current_folder("/")
6472 + self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_OPEN)
6473 + self.file_dialog.set_select_multiple(1)
6476 + def add_dir(self, args):
6477 + self.file_dialog.set_title(_("Select directory(s) that the confined application owns and writes into"))
6478 + self.file_dialog.set_current_folder("/")
6479 + self.file_dialog.set_select_multiple(1)
6480 + self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
6483 + def on_about_clicked(self, args):
6484 + dlg = xml.get_widget ("about_dialog")
6488 + def quit(self, args):
6491 + def setupScreen(self):
6492 + # Bring in widgets from glade file.
6493 + self.mainWindow = self.xml.get_widget("main_window")
6494 + self.druid = self.xml.get_widget("druid")
6496 + self.name_entry = self.xml.get_widget("name_entry")
6497 + self.name_entry.connect("insert_text",self.on_name_entry_changed)
6498 + self.name_entry.connect("focus_out_event",self.on_focus_out_event)
6499 + self.exec_entry = self.xml.get_widget("exec_entry")
6500 + self.exec_button = self.xml.get_widget("exec_button")
6501 + self.init_script_entry = self.xml.get_widget("init_script_entry")
6502 + self.init_script_button = self.xml.get_widget("init_script_button")
6503 + self.output_entry = self.xml.get_widget("output_entry")
6504 + self.output_entry.set_text(os.getcwd())
6505 + self.xml.get_widget("output_button").connect("clicked",self.output_button_clicked)
6507 + self.xwindows_user_radiobutton = self.xml.get_widget("xwindows_user_radiobutton")
6508 + self.terminal_user_radiobutton = self.xml.get_widget("terminal_user_radiobutton")
6509 + self.root_user_radiobutton = self.xml.get_widget("root_user_radiobutton")
6510 + self.login_user_radiobutton = self.xml.get_widget("login_user_radiobutton")
6511 + self.admin_user_radiobutton = self.xml.get_widget("admin_user_radiobutton")
6512 + self.existing_user_radiobutton = self.xml.get_widget("existing_user_radiobutton")
6514 + self.user_radiobutton = self.xml.get_widget("user_radiobutton")
6515 + self.init_radiobutton = self.xml.get_widget("init_radiobutton")
6516 + self.inetd_radiobutton = self.xml.get_widget("inetd_radiobutton")
6517 + self.dbus_radiobutton = self.xml.get_widget("dbus_radiobutton")
6518 + self.cgi_radiobutton = self.xml.get_widget("cgi_radiobutton")
6519 + self.sandbox_radiobutton = self.xml.get_widget("sandbox_radiobutton")
6520 + self.tmp_checkbutton = self.xml.get_widget("tmp_checkbutton")
6521 + self.uid_checkbutton = self.xml.get_widget("uid_checkbutton")
6522 + self.pam_checkbutton = self.xml.get_widget("pam_checkbutton")
6523 + self.dbus_checkbutton = self.xml.get_widget("dbus_checkbutton")
6524 + self.audit_checkbutton = self.xml.get_widget("audit_checkbutton")
6525 + self.terminal_checkbutton = self.xml.get_widget("terminal_checkbutton")
6526 + self.mail_checkbutton = self.xml.get_widget("mail_checkbutton")
6527 + self.syslog_checkbutton = self.xml.get_widget("syslog_checkbutton")
6528 + self.view = self.xml.get_widget("write_treeview")
6529 + self.file_dialog = self.xml.get_widget("filechooserdialog")
6531 + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_INT)
6532 + self.view.set_model(self.store)
6533 + col = gtk.TreeViewColumn("", gtk.CellRendererText(), text = 0)
6534 + col.set_resizable(True)
6535 + self.view.append_column(col)
6536 + self.view.get_selection().select_path ((0,))
6538 + def output_button_clicked(self, *args):
6539 + self.file_dialog.set_title(_("Select directory to generate policy files in"))
6540 + self.file_dialog.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
6541 + self.file_dialog.set_select_multiple(0)
6542 + rc = self.file_dialog.run()
6543 + self.file_dialog.hide()
6544 + if rc == gtk.RESPONSE_CANCEL:
6546 + self.output_entry.set_text(self.file_dialog.get_filename())
6548 + def on_name_entry_changed(self, entry, text, size, position):
6549 + if text.find(" ") >= 0:
6550 + entry.emit_stop_by_name("insert_text")
6552 + def on_focus_out_event(self, entry, third):
6553 + name = entry.get_text()
6554 + if self.name != name:
6555 + if name in self.all_types:
6556 + if self.verify(_("Type %s_t already defined in current policy.\nDo you want to continue?") % name, _("Verify Name")) == gtk.RESPONSE_NO:
6557 + entry.set_text("")
6559 + if name in self.all_modules:
6560 + if self.verify(_("Module %s.pp already loaded in current policy.\nDo you want to continue?") % name, _("Verify Name")) == gtk.RESPONSE_NO:
6561 + entry.set_text("")
6564 + file = "/etc/rc.d/init.d/" + name
6565 + if os.path.isfile(file) and self.init_script_entry.get_text() == "":
6566 + self.init_script_entry.set_text(file)
6568 + file = "/usr/sbin/" + name
6569 + if os.path.isfile(file) and self.exec_entry.get_text() == "":
6570 + self.exec_entry.set_text(file)
6575 + def on_in_net_page_next(self, *args):
6577 + polgen.verify_ports(self.in_tcp_entry.get_text())
6578 + polgen.verify_ports(self.in_udp_entry.get_text())
6579 + except ValueError, e:
6580 + self.error(e.message)
6583 + def on_out_net_page_next(self, *args):
6585 + polgen.verify_ports(self.out_tcp_entry.get_text())
6586 + polgen.verify_ports(self.out_udp_entry.get_text())
6587 + except ValueError, e:
6588 + self.error(e.message)
6591 + def on_select_type_page_next(self, *args):
6592 + self.exec_entry.set_sensitive(self.confine_application())
6593 + self.exec_button.set_sensitive(self.confine_application())
6594 + self.init_script_entry.set_sensitive(self.init_radiobutton.get_active())
6595 + self.init_script_button.set_sensitive(self.init_radiobutton.get_active())
6597 + def on_existing_user_page_next(self, *args):
6598 + store, iter = self.view.get_selection().get_selected()
6600 + self.error(_("You must select a user"))
6603 + def on_name_page_next(self, *args):
6604 + name=self.name_entry.get_text()
6605 + if not name.isalnum():
6606 + self.error(_("You must add a name made up of letters and numbers and containing no spaces."))
6609 + for i in self.label_dict:
6610 + text = '<b>%s</b>' % (self.label_dict[i] % ("'" + name + "'"))
6611 + i.set_markup(text)
6613 + for i in self.tooltip_dict:
6614 + text = self.tooltip_dict[i] % ("'" + name + "'")
6615 + i.set_tooltip_text(text)
6617 + if self.confine_application():
6618 + exe = self.exec_entry.get_text()
6620 + self.error(_("You must enter a executable"))
6622 + policy=polgen.policy(name, self.get_type())
6623 + policy.set_program(exe)
6624 + policy.gen_writeable()
6625 + policy.gen_symbols()
6626 + for f in policy.files.keys():
6627 + iter = self.store.append()
6628 + self.store.set_value(iter, 0, f)
6629 + self.store.set_value(iter, 1, FILE)
6631 + for f in policy.dirs.keys():
6632 + iter = self.store.append()
6633 + self.store.set_value(iter, 0, f)
6634 + self.store.set_value(iter, 1, DIR)
6635 + self.tmp_checkbutton.set_active(policy.use_tmp)
6636 + self.uid_checkbutton.set_active(policy.use_uid)
6637 + self.pam_checkbutton.set_active(policy.use_pam)
6638 + self.dbus_checkbutton.set_active(policy.use_dbus)
6639 + self.audit_checkbutton.set_active(policy.use_audit)
6640 + self.terminal_checkbutton.set_active(policy.use_terminal)
6641 + self.mail_checkbutton.set_active(policy.use_mail)
6642 + self.syslog_checkbutton.set_active(policy.use_syslog)
6644 + def stand_alone(self):
6645 + desktopName = _("Configue SELinux")
6647 + self.setupScreen()
6648 + self.mainWindow.connect("destroy", self.quit)
6650 + self.mainWindow.show_all()
6653 +if __name__ == "__main__":
6654 + signal.signal (signal.SIGINT, signal.SIG_DFL)
6656 + app = childWindow()
6658 diff -up policycoreutils-2.1.8/gui/polgen.py.gui policycoreutils-2.1.8/gui/polgen.py
6659 --- policycoreutils-2.1.8/gui/polgen.py.gui 2011-11-07 15:12:01.905834233 -0500
6660 +++ policycoreutils-2.1.8/gui/polgen.py 2011-11-07 15:12:39.045857808 -0500
6662 +#!/usr/bin/python -Es
6664 +# Copyright (C) 2007-2011 Red Hat
6665 +# see file 'COPYING' for use and warranty information
6667 +# policygentool is a tool for the initial generation of SELinux policy
6669 +# This program is free software; you can redistribute it and/or
6670 +# modify it under the terms of the GNU General Public License as
6671 +# published by the Free Software Foundation; either version 2 of
6672 +# the License, or (at your option) any later version.
6674 +# This program is distributed in the hope that it will be useful,
6675 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
6676 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6677 +# GNU General Public License for more details.
6679 +# You should have received a copy of the GNU General Public License
6680 +# along with this program; if not, write to the Free Software
6681 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
6685 +import os, sys, stat
6690 +from templates import executable
6691 +from templates import boolean
6692 +from templates import etc_rw
6693 +from templates import var_cache
6694 +from templates import var_spool
6695 +from templates import var_lib
6696 +from templates import var_log
6697 +from templates import var_run
6698 +from templates import tmp
6699 +from templates import rw
6700 +from templates import network
6701 +from templates import script
6702 +from templates import user
6703 +import sepolgen.interfaces as interfaces
6704 +import sepolgen.defaults as defaults
6709 +PROGNAME="policycoreutils"
6712 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
6713 +gettext.textdomain(PROGNAME)
6715 + gettext.install(PROGNAME,
6716 + localedir="/usr/share/locale",
6718 + codeset = 'utf-8')
6720 + import __builtin__
6721 + __builtin__.__dict__['_'] = unicode
6724 +fn = defaults.interface_info()
6727 + # List of per_role_template interfaces
6728 + ifs = interfaces.InterfaceSet()
6730 + methods = ifs.interfaces.keys()
6733 + sys.stderr.write("could not open interface info [%s]\n" % fn)
6737 +def get_all_types():
6739 + if all_types == None:
6740 + all_types = map(lambda x: x['name'], setools.seinfo(setools.TYPE))
6743 +def get_all_ports():
6745 + for p in setools.seinfo(setools.PORT):
6746 + if p['type'] == "reserved_port_t" or \
6747 + p['type'] == "port_t" or \
6748 + p['type'] == "hi_reserved_port_t":
6750 + dict[(p['low'], p['high'], p['protocol'])]=(p['type'], p['range'])
6753 +def get_all_roles():
6754 + roles = map(lambda x: x['name'], setools.seinfo(setools.ROLE))
6755 + roles.remove("object_r")
6759 +def get_all_attributes():
6760 + attributes = map(lambda x: x['name'], setools.seinfo(setools.ATTRIBUTE))
6764 +def get_all_domains():
6766 + types=get_all_types()
6769 + m = re.findall("(.*)%s" % "_exec_t$", i)
6771 + if len(re.findall("(.*)%s" % "_initrc$", m[0])) == 0 and m[0] not in all_domains:
6772 + all_domains.append(m[0])
6773 + return all_domains
6775 +def get_all_modules():
6778 + rc, output=commands.getstatusoutput("semodule -l 2>/dev/null")
6780 + l = output.split("\n")
6782 + all_modules.append(i.split()[0])
6786 + return all_modules
6788 +def get_all_users():
6789 + users = map(lambda x: x['name'], setools.seinfo(setools.USER))
6790 + users.remove("system_u")
6791 + users.remove("root")
6799 +ADMIN_TRANSITION_INTERFACE = "_admin$"
6800 +USER_TRANSITION_INTERFACE = "_role$"
6816 +poltype[DAEMON] = _("Standard Init Daemon")
6817 +poltype[DBUS] = _("DBUS System Daemon")
6818 +poltype[INETD] = _("Internet Services Daemon")
6819 +poltype[CGI] = _("Web Application/Script (CGI)")
6820 +poltype[USER] = _("User Application")
6821 +poltype[TUSER] = _("Minimal Terminal User Role")
6822 +poltype[XUSER] = _("Minimal X Windows User Role")
6823 +poltype[LUSER] = _("User Role")
6824 +poltype[AUSER] = _("Admin User Role")
6825 +poltype[RUSER] = _("Root Admin User Role")
6826 +poltype[SANDBOX] = _("Sandbox")
6828 +APPLICATIONS = [ DAEMON, DBUS, INETD, USER, CGI ]
6829 +USERS = [ XUSER, TUSER, LUSER, AUSER, EUSER, RUSER]
6831 +def verify_ports(ports):
6837 + for a in ports.split(","):
6842 + begin = int (r[0])
6845 + begin = int (r[0])
6851 + for p in range(begin, end + 1):
6852 + if p < 1 or p > max_port:
6856 + except ValueError:
6857 + raise ValueError(_("Ports must be numbers or ranges of numbers from 1 to %d " % max_port ))
6861 + def __init__(self, name, type):
6864 + self.ports = get_all_ports()
6865 + except ValueError, e:
6866 + print "Can not get port types, must be root for this information"
6867 + except RuntimeError, e:
6868 + print "Can not get port types", e
6871 + self.symbols["openlog"] = "set_use_kerberos(True)"
6872 + self.symbols["openlog"] = "set_use_kerb_rcache(True)"
6873 + self.symbols["openlog"] = "set_use_syslog(True)"
6874 + self.symbols["gethostby"] = "set_use_resolve(True)"
6875 + self.symbols["getaddrinfo"] = "set_use_resolve(True)"
6876 + self.symbols["getnameinfo"] = "set_use_resolve(True)"
6877 + self.symbols["krb"] = "set_use_kerberos(True)"
6878 + self.symbols["gss_accept_sec_context"] = "set_manage_krb5_rcache(True)"
6879 + self.symbols["krb5_verify_init_creds"] = "set_manage_krb5_rcache(True)"
6880 + self.symbols["krb5_rd_req"] = "set_manage_krb5_rcache(True)"
6881 + self.symbols["__syslog_chk"] = "set_use_syslog(True)"
6882 + self.symbols["getpwnam"] = "set_use_uid(True)"
6883 + self.symbols["getpwuid"] = "set_use_uid(True)"
6884 + self.symbols["dbus_"] = "set_use_dbus(True)"
6885 + self.symbols["pam_"] = "set_use_pam(True)"
6886 + self.symbols["pam_"] = "set_use_audit(True)"
6887 + self.symbols["fork"] = "add_process('fork')"
6888 + self.symbols["transition"] = "add_process('transition')"
6889 + self.symbols["sigchld"] = "add_process('sigchld')"
6890 + self.symbols["sigkill"] = "add_process('sigkill')"
6891 + self.symbols["sigstop"] = "add_process('sigstop')"
6892 + self.symbols["signull"] = "add_process('signull')"
6893 + self.symbols["signal"] = "add_process('signal')"
6894 + self.symbols["ptrace"] = "add_process('ptrace')"
6895 + self.symbols["getsched"] = "add_process('getsched')"
6896 + self.symbols["setsched"] = "add_process('setsched')"
6897 + self.symbols["getsession"] = "add_process('getsession')"
6898 + self.symbols["getpgid"] = "add_process('getpgid')"
6899 + self.symbols["setpgid"] = "add_process('setpgid')"
6900 + self.symbols["getcap"] = "add_process('getcap')"
6901 + self.symbols["setcap"] = "add_process('setcap')"
6902 + self.symbols["share"] = "add_process('share')"
6903 + self.symbols["getattr"] = "add_process('getattr')"
6904 + self.symbols["setexec"] = "add_process('setexec')"
6905 + self.symbols["setfscreate"] = "add_process('setfscreate')"
6906 + self.symbols["noatsecure"] = "add_process('noatsecure')"
6907 + self.symbols["siginh"] = "add_process('siginh')"
6908 + self.symbols["setrlimit"] = "add_process('setrlimit')"
6909 + self.symbols["rlimitinh"] = "add_process('rlimitinh')"
6910 + self.symbols["dyntransition"] = "add_process('dyntransition')"
6911 + self.symbols["setcurrent"] = "add_process('setcurrent')"
6912 + self.symbols["execmem"] = "add_process('execmem')"
6913 + self.symbols["execstack"] = "add_process('execstack')"
6914 + self.symbols["execheap"] = "add_process('execheap')"
6915 + self.symbols["setkeycreate"] = "add_process('setkeycreate')"
6916 + self.symbols["setsockcreate"] = "add_process('setsockcreate')"
6918 + self.symbols["chown"] = "add_capability('chown')"
6919 + self.symbols["dac_override"] = "add_capability('dac_override')"
6920 + self.symbols["dac_read_search"] = "add_capability('dac_read_search')"
6921 + self.symbols["fowner"] = "add_capability('fowner')"
6922 + self.symbols["fsetid"] = "add_capability('fsetid')"
6923 + self.symbols["kill"] = "add_capability('kill')"
6924 + self.symbols["setgid"] = "add_capability('setgid')"
6925 + self.symbols["setresuid"] = "add_capability('setuid')"
6926 + self.symbols["setuid"] = "add_capability('setuid')"
6927 + self.symbols["setpcap"] = "add_capability('setpcap')"
6928 + self.symbols["linux_immutable"] = "add_capability('linux_immutable')"
6929 + self.symbols["net_bind_service"] = "add_capability('net_bind_service')"
6930 + self.symbols["net_broadcast"] = "add_capability('net_broadcast')"
6931 + self.symbols["net_admin"] = "add_capability('net_admin')"
6932 + self.symbols["net_raw"] = "add_capability('net_raw')"
6933 + self.symbols["ipc_lock"] = "add_capability('ipc_lock')"
6934 + self.symbols["ipc_owner"] = "add_capability('ipc_owner')"
6935 + self.symbols["sys_module"] = "add_capability('sys_module')"
6936 + self.symbols["sys_rawio"] = "add_capability('sys_rawio')"
6937 + self.symbols["chroot"] = "add_capability('sys_chroot')"
6938 + self.symbols["sys_chroot"] = "add_capability('sys_chroot')"
6939 + self.symbols["sys_ptrace"] = "add_capability('sys_ptrace')"
6940 + self.symbols["sys_pacct"] = "add_capability('sys_pacct')"
6941 + self.symbols["mount"] = "add_capability('sys_admin')"
6942 + self.symbols["unshare"] = "add_capability('sys_admin')"
6943 + self.symbols["sys_admin"] = "add_capability('sys_admin')"
6944 + self.symbols["sys_boot"] = "add_capability('sys_boot')"
6945 + self.symbols["sys_nice"] = "add_capability('sys_nice')"
6946 + self.symbols["sys_resource"] = "add_capability('sys_resource')"
6947 + self.symbols["sys_time"] = "add_capability('sys_time')"
6948 + self.symbols["sys_tty_config"] = "add_capability('sys_tty_config')"
6949 + self.symbols["mknod"] = "add_capability('mknod')"
6950 + self.symbols["lease"] = "add_capability('lease')"
6951 + self.symbols["audit_write"] = "add_capability('audit_write')"
6952 + self.symbols["audit_control"] = "add_capability('audit_control')"
6953 + self.symbols["setfcap"] = "add_capability('setfcap')"
6955 + self.DEFAULT_DIRS = {}
6956 + self.DEFAULT_DIRS["/etc"] = ["etc_rw", [], etc_rw];
6957 + self.DEFAULT_DIRS["/tmp"] = ["tmp", [], tmp];
6958 + self.DEFAULT_DIRS["rw"] = ["rw", [], rw];
6959 + self.DEFAULT_DIRS["/var/cache"] = ["var_cache", [], var_cache];
6960 + self.DEFAULT_DIRS["/var/lib"] = ["var_lib", [], var_lib];
6961 + self.DEFAULT_DIRS["/var/log"] = ["var_log", [], var_log];
6962 + self.DEFAULT_DIRS["/var/run"] = ["var_run", [], var_run];
6963 + self.DEFAULT_DIRS["/var/spool"] = ["var_spool", [], var_spool];
6965 + self.DEFAULT_KEYS=["/etc", "/var/cache", "/var/log", "/tmp", "rw", "/var/lib", "/var/run", "/var/spool"]
6967 + self.DEFAULT_TYPES = (\
6968 +( self.generate_daemon_types, self.generate_daemon_rules), \
6969 +( self.generate_dbusd_types, self.generate_dbusd_rules), \
6970 +( self.generate_inetd_types, self.generate_inetd_rules), \
6971 +( self.generate_userapp_types, self.generate_userapp_rules), \
6972 +( self.generate_cgi_types, self.generate_cgi_rules), \
6973 +( self.generate_x_login_user_types, self.generate_x_login_user_rules), \
6974 +( self.generate_min_login_user_types, self.generate_login_user_rules), \
6975 +( self.generate_login_user_types, self.generate_login_user_rules), \
6976 +( self.generate_admin_user_types, self.generate_login_user_rules), \
6977 +( self.generate_existing_user_types, self.generate_existing_user_rules), \
6978 +( self.generate_root_user_types, self.generate_root_user_rules), \
6979 +( self.generate_sandbox_types, self.generate_sandbox_rules))
6981 + raise ValueError(_("You must enter a name for your confined process/user"))
6982 + if not name.isalnum():
6983 + raise ValueError(_("Name must be alpha numberic with no spaces. Consider using option \"-n MODULENAME\""))
6986 + self.name = "httpd_%s_script" % name
6990 + self.file_name = name
6992 + self.capabilities = []
6993 + self.processes = []
6995 + self.initscript = ""
6997 + self.in_tcp = [False, False, False, []]
6998 + self.in_udp = [False, False, False, []]
6999 + self.out_tcp = [False, False, False, []]
7000 + self.out_udp = [False, False, False, []]
7001 + self.use_resolve = False
7002 + self.use_tmp = False
7003 + self.use_uid = False
7004 + self.use_syslog = False
7005 + self.use_kerberos = False
7006 + self.manage_krb5_rcache = False
7007 + self.use_pam = False
7008 + self.use_dbus = False
7009 + self.use_audit = False
7010 + self.use_etc = True
7011 + self.use_localization = True
7012 + self.use_fd = True
7013 + self.use_terminal = False
7014 + self.use_mail = False
7015 + self.booleans = {}
7018 + self.found_tcp_ports=[]
7019 + self.found_udp_ports=[]
7020 + self.need_tcp_type=False
7021 + self.need_udp_type=False
7022 + self.admin_domains = []
7023 + self.transition_domains = []
7024 + self.transition_users = []
7027 + def __isnetset(self, l):
7028 + return l[ALL] or l[RESERVED] or l[UNRESERVED] or len(l[PORTS]) > 0
7030 + def set_admin_domains(self, admin_domains):
7031 + self.admin_domains = admin_domains
7033 + def set_admin_roles(self, roles):
7034 + self.roles = roles
7036 + def set_transition_domains(self, transition_domains):
7037 + self.transition_domains = transition_domains
7039 + def set_transition_users(self, transition_users):
7040 + self.transition_users = transition_users
7042 + def use_in_udp(self):
7043 + return self.__isnetset(self.in_udp)
7045 + def use_out_udp(self):
7046 + return self.__isnetset(self.out_udp)
7048 + def use_udp(self):
7049 + return self.use_in_udp() or self.use_out_udp()
7051 + def use_in_tcp(self):
7052 + return self.__isnetset(self.in_tcp)
7054 + def use_out_tcp(self):
7055 + return self.__isnetset(self.out_tcp)
7057 + def use_tcp(self):
7058 + return self.use_in_tcp() or self.use_out_tcp()
7060 + def use_network(self):
7061 + return self.use_tcp() or self.use_udp()
7063 + def find_port(self, port, protocol="tcp"):
7064 + for begin,end,p in self.ports.keys():
7065 + if port >= begin and port <= end and protocol == p:
7066 + return self.ports[begin, end, protocol]
7069 + def set_program(self, program):
7070 + if self.type not in APPLICATIONS:
7071 + raise ValueError(_("User Role types can not be assigned executables."))
7073 + self.program = program
7075 + def set_init_script(self, initscript):
7076 + if self.type != DAEMON:
7077 + raise ValueError(_("Only Daemon apps can use an init script.."))
7079 + self.initscript = initscript
7081 + def set_in_tcp(self, all, reserved, unreserved, ports):
7082 + self.in_tcp = [ all, reserved, unreserved, verify_ports(ports)]
7084 + def set_in_udp(self, all, reserved, unreserved, ports):
7085 + self.in_udp = [ all, reserved, unreserved, verify_ports(ports)]
7087 + def set_out_tcp(self, all, ports):
7088 + self.out_tcp = [ all , False, False, verify_ports(ports) ]
7090 + def set_out_udp(self, all, ports):
7091 + self.out_udp = [ all , False, False, verify_ports(ports) ]
7093 + def set_use_resolve(self, val):
7094 + if val != True and val != False:
7095 + raise ValueError(_("use_resolve must be a boolean value "))
7097 + self.use_resolve = val
7099 + def set_use_syslog(self, val):
7100 + if val != True and val != False:
7101 + raise ValueError(_("use_syslog must be a boolean value "))
7103 + self.use_syslog = val
7105 + def set_use_kerberos(self, val):
7106 + if val != True and val != False:
7107 + raise ValueError(_("use_kerberos must be a boolean value "))
7109 + self.use_kerberos = val
7111 + def set_manage_krb5_rcache(self, val):
7112 + if val != True and val != False:
7113 + raise ValueError(_("manage_krb5_rcache must be a boolean value "))
7115 + self.manage_krb5_rcache = val
7117 + def set_use_pam(self, val):
7118 + self.use_pam = val == True
7120 + def set_use_dbus(self, val):
7121 + self.use_dbus = val == True
7123 + def set_use_audit(self, val):
7124 + self.use_audit = val == True
7126 + def set_use_etc(self, val):
7127 + self.use_etc = val == True
7129 + def set_use_localization(self, val):
7130 + self.use_localization = val == True
7132 + def set_use_fd(self, val):
7133 + self.use_fd = val == True
7135 + def set_use_terminal(self, val):
7136 + self.use_terminal = val == True
7138 + def set_use_mail(self, val):
7139 + self.use_mail = val == True
7141 + def set_use_tmp(self, val):
7142 + if self.type in USERS:
7143 + raise ValueError(_("USER Types automatically get a tmp type"))
7146 + self.DEFAULT_DIRS["/tmp"][1].append("/tmp");
7148 + self.DEFAULT_DIRS["/tmp"][1]=[]
7150 + def set_use_uid(self, val):
7151 + self.use_uid = val == True
7153 + def generate_uid_rules(self):
7155 + return re.sub("TEMPLATETYPE", self.name, executable.te_uid_rules)
7159 + def generate_syslog_rules(self):
7160 + if self.use_syslog:
7161 + return re.sub("TEMPLATETYPE", self.name, executable.te_syslog_rules)
7165 + def generate_resolve_rules(self):
7166 + if self.use_resolve:
7167 + return re.sub("TEMPLATETYPE", self.name, executable.te_resolve_rules)
7171 + def generate_kerberos_rules(self):
7172 + if self.use_kerberos:
7173 + return re.sub("TEMPLATETYPE", self.name, executable.te_kerberos_rules)
7177 + def generate_manage_krb5_rcache_rules(self):
7178 + if self.manage_krb5_rcache:
7179 + return re.sub("TEMPLATETYPE", self.name, executable.te_manage_krb5_rcache_rules)
7183 + def generate_pam_rules(self):
7186 + newte = re.sub("TEMPLATETYPE", self.name, executable.te_pam_rules)
7189 + def generate_audit_rules(self):
7191 + if self.use_audit:
7192 + newte = re.sub("TEMPLATETYPE", self.name, executable.te_audit_rules)
7195 + def generate_etc_rules(self):
7198 + newte = re.sub("TEMPLATETYPE", self.name, executable.te_etc_rules)
7201 + def generate_fd_rules(self):
7204 + newte = re.sub("TEMPLATETYPE", self.name, executable.te_fd_rules)
7207 + def generate_localization_rules(self):
7209 + if self.use_localization:
7210 + newte = re.sub("TEMPLATETYPE", self.name, executable.te_localization_rules)
7213 + def generate_dbus_rules(self):
7215 + if self.type != DBUS and self.use_dbus:
7216 + newte = re.sub("TEMPLATETYPE", self.name, executable.te_dbus_rules)
7219 + def generate_mail_rules(self):
7222 + newte = re.sub("TEMPLATETYPE", self.name, executable.te_mail_rules)
7225 + def generate_network_action(self, protocol, action, port_name):
7227 + method = "corenet_%s_%s_%s" % (protocol, action, port_name)
7228 + if method in methods:
7229 + line = "%s(%s_t)\n" % (method, self.name)
7235 +allow %s_t %s_t:%s_socket name_%s;
7236 +""" % (port_name, self.name, port_name, protocol, action)
7239 + def generate_network_types(self):
7240 + for i in self.in_tcp[PORTS]:
7241 + rec = self.find_port(int(i), "tcp")
7243 + self.need_tcp_type = True;
7245 + port_name = rec[0][:-2]
7246 + line = self.generate_network_action("tcp", "bind", port_name)
7247 +# line = "corenet_tcp_bind_%s(%s_t)\n" % (port_name, self.name)
7248 + if line not in self.found_tcp_ports:
7249 + self.found_tcp_ports.append(line)
7251 + for i in self.out_tcp[PORTS]:
7252 + rec = self.find_port(int(i), "tcp")
7254 + self.need_tcp_type = True;
7256 + port_name = rec[0][:-2]
7257 + line = self.generate_network_action("tcp", "connect", port_name)
7258 +# line = "corenet_tcp_connect_%s(%s_t)\n" % (port_name, self.name)
7259 + if line not in self.found_tcp_ports:
7260 + self.found_tcp_ports.append(line)
7262 + for i in self.in_udp[PORTS]:
7263 + rec = self.find_port(int(i),"udp")
7265 + self.need_udp_type = True;
7267 + port_name = rec[0][:-2]
7268 + line = self.generate_network_action("udp", "bind", port_name)
7269 +# line = "corenet_udp_bind_%s(%s_t)\n" % (port_name, self.name)
7270 + if line not in self.found_udp_ports:
7271 + self.found_udp_ports.append(line)
7273 + if self.need_udp_type == True or self.need_tcp_type == True:
7274 + return re.sub("TEMPLATETYPE", self.name, network.te_port_types)
7277 + def __find_path(self, file):
7278 + for d in self.DEFAULT_DIRS:
7279 + if file.find(d) == 0:
7280 + self.DEFAULT_DIRS[d][1].append(file)
7281 + return self.DEFAULT_DIRS[d]
7282 + self.DEFAULT_DIRS["rw"][1].append(file)
7283 + return self.DEFAULT_DIRS["rw"]
7285 + def add_capability(self, capability):
7286 + if capability not in self.capabilities:
7287 + self.capabilities.append(capability)
7289 + def add_process(self, process):
7290 + if process not in self.processes:
7291 + self.processes.append(process)
7293 + def add_boolean(self, name, description):
7294 + self.booleans[name] = description
7296 + def add_file(self, file):
7297 + self.files[file] = self.__find_path(file)
7299 + def add_dir(self, file):
7300 + self.dirs[file] = self.__find_path(file)
7302 + def generate_capabilities(self):
7304 + self.capabilities.sort()
7305 + if len(self.capabilities) > 0:
7306 + newte = "allow %s_t self:capability { %s };\n" % (self.name, " ".join(self.capabilities))
7309 + def generate_process(self):
7311 + self.processes.sort()
7312 + if len(self.processes) > 0:
7313 + newte = "allow %s_t self:process { %s };\n" % (self.name, " ".join(self.processes))
7317 + def generate_network_rules(self):
7319 + if self.use_network():
7322 + newte += re.sub("TEMPLATETYPE", self.name, network.te_network)
7324 + if self.use_tcp():
7326 + newte += re.sub("TEMPLATETYPE", self.name, network.te_tcp)
7328 + if self.use_in_tcp():
7329 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_tcp)
7331 + if self.need_tcp_type and len(self.in_tcp[PORTS]) > 0:
7332 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_need_port_tcp)
7334 + if self.need_tcp_type and len(self.out_tcp[PORTS]) > 0:
7335 + newte += re.sub("TEMPLATETYPE", self.name, network.te_out_need_port_tcp)
7338 + if self.in_tcp[ALL]:
7339 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_all_ports_tcp)
7340 + if self.in_tcp[RESERVED]:
7341 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_reserved_ports_tcp)
7342 + if self.in_tcp[UNRESERVED]:
7343 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_unreserved_ports_tcp)
7345 + if self.out_tcp[ALL]:
7346 + newte += re.sub("TEMPLATETYPE", self.name, network.te_out_all_ports_tcp)
7347 + if self.out_tcp[RESERVED]:
7348 + newte += re.sub("TEMPLATETYPE", self.name, network.te_out_reserved_ports_tcp)
7349 + if self.out_tcp[UNRESERVED]:
7350 + newte += re.sub("TEMPLATETYPE", self.name, network.te_out_unreserved_ports_tcp)
7352 + for i in self.found_tcp_ports:
7355 + if self.use_udp():
7357 + newte += re.sub("TEMPLATETYPE", self.name, network.te_udp)
7359 + if self.need_udp_type:
7360 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_need_port_udp)
7361 + if self.use_in_udp():
7362 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_udp)
7363 + if self.in_udp[ALL]:
7364 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_all_ports_udp)
7365 + if self.in_udp[RESERVED]:
7366 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_reserved_ports_udp)
7367 + if self.in_udp[UNRESERVED]:
7368 + newte += re.sub("TEMPLATETYPE", self.name, network.te_in_unreserved_ports_udp)
7370 + for i in self.found_udp_ports:
7374 + def generate_transition_rules(self):
7376 + for app in self.transition_domains:
7377 + tmp = re.sub("TEMPLATETYPE", self.name, user.te_transition_rules)
7378 + newte += re.sub("APPLICATION", app, tmp)
7380 + if self.type == USER:
7381 + for u in self.transition_users:
7382 + temp = re.sub("TEMPLATETYPE", self.name, executable.te_run_rules)
7383 + newte += re.sub("USER", u.split("_u")[0], temp)
7387 + def generate_admin_rules(self):
7389 + if self.type == RUSER:
7390 + newte += re.sub("TEMPLATETYPE", self.name, user.te_admin_rules)
7392 + for app in self.admin_domains:
7393 + tmp = re.sub("TEMPLATETYPE", self.name, user.te_admin_domain_rules)
7394 + newte += re.sub("APPLICATION", app, tmp)
7398 + all_roles = get_all_roles()
7399 + except ValueError, e:
7400 + print "Can not get all roles, must be root for this information"
7401 + except RuntimeError, e:
7402 + print "Can not get all roles", e
7404 + for u in self.transition_users:
7405 + role = u.split("_u")[0]
7407 + if (role + "_r") in all_roles:
7408 + tmp = re.sub("TEMPLATETYPE", self.name, user.te_admin_trans_rules)
7409 + newte += re.sub("USER", role, tmp)
7413 + def generate_dbus_if(self):
7416 + newif = re.sub("TEMPLATETYPE", self.name, executable.if_dbus_rules)
7419 + def generate_sandbox_if(self):
7421 + if self.type != SANDBOX:
7423 + newif = re.sub("TEMPLATETYPE", self.name, executable.if_sandbox_rules)
7427 + def generate_admin_if(self):
7430 + if self.initscript != "":
7431 + newtypes += re.sub("TEMPLATETYPE", self.name, executable.if_initscript_admin_types)
7432 + newif += re.sub("TEMPLATETYPE", self.name, executable.if_initscript_admin)
7433 + for d in self.DEFAULT_KEYS:
7434 + if len(self.DEFAULT_DIRS[d][1]) > 0:
7435 + newtypes += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].if_admin_types)
7436 + newif += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].if_admin_rules)
7439 + ret = re.sub("TEMPLATETYPE", self.name, executable.if_begin_admin)
7442 + ret += re.sub("TEMPLATETYPE", self.name, executable.if_middle_admin)
7444 + ret += re.sub("TEMPLATETYPE", self.name, executable.if_end_admin)
7449 + def generate_cgi_types(self):
7450 + return re.sub("TEMPLATETYPE", self.file_name, executable.te_cgi_types)
7452 + def generate_sandbox_types(self):
7453 + return re.sub("TEMPLATETYPE", self.file_name, executable.te_sandbox_types)
7455 + def generate_userapp_types(self):
7456 + return re.sub("TEMPLATETYPE", self.name, executable.te_userapp_types)
7458 + def generate_inetd_types(self):
7459 + return re.sub("TEMPLATETYPE", self.name, executable.te_inetd_types)
7461 + def generate_dbusd_types(self):
7462 + return re.sub("TEMPLATETYPE", self.name, executable.te_dbusd_types)
7464 + def generate_min_login_user_types(self):
7465 + return re.sub("TEMPLATETYPE", self.name, user.te_min_login_user_types)
7467 + def generate_login_user_types(self):
7468 + return re.sub("TEMPLATETYPE", self.name, user.te_login_user_types)
7470 + def generate_admin_user_types(self):
7471 + return re.sub("TEMPLATETYPE", self.name, user.te_admin_user_types)
7473 + def generate_existing_user_types(self):
7474 + return re.sub("TEMPLATETYPE", self.name, user.te_existing_user_types)
7476 + def generate_x_login_user_types(self):
7477 + return re.sub("TEMPLATETYPE", self.name, user.te_x_login_user_types)
7479 + def generate_root_user_types(self):
7480 + return re.sub("TEMPLATETYPE", self.name, user.te_root_user_types)
7482 + def generate_daemon_types(self):
7483 + newte = re.sub("TEMPLATETYPE", self.name, executable.te_daemon_types)
7484 + if self.initscript != "":
7485 + newte += re.sub("TEMPLATETYPE", self.name, executable.te_initscript_types)
7488 + def generate_tmp_types(self):
7490 + return re.sub("TEMPLATETYPE", self.name, tmp.te_types)
7494 + def generate_booleans(self):
7496 + for b in self.booleans:
7497 + tmp = re.sub("BOOLEAN", b, boolean.te_boolean)
7498 + newte += re.sub("DESCRIPTION", self.booleans[b], tmp)
7501 + def generate_boolean_rules(self):
7503 + for b in self.booleans:
7504 + newte += re.sub("BOOLEAN", b, boolean.te_rules)
7507 + def generate_sandbox_te(self):
7508 + return re.sub("TEMPLATETYPE", self.name, executable.te_sandbox_types)
7510 + def generate_cgi_te(self):
7511 + return re.sub("TEMPLATETYPE", self.name, executable.te_cgi_types)
7513 + def generate_daemon_rules(self):
7514 + newif = re.sub("TEMPLATETYPE", self.name, executable.te_daemon_rules)
7518 + def generate_login_user_rules(self):
7519 + return re.sub("TEMPLATETYPE", self.name, user.te_login_user_rules)
7521 + def generate_existing_user_rules(self):
7522 + return re.sub("TEMPLATETYPE", self.name, user.te_existing_user_rules)
7524 + def generate_x_login_user_rules(self):
7525 + return re.sub("TEMPLATETYPE", self.name, user.te_x_login_user_rules)
7527 + def generate_root_user_rules(self):
7528 + newte =re.sub("TEMPLATETYPE", self.name, user.te_root_user_rules)
7531 + def generate_userapp_rules(self):
7532 + return re.sub("TEMPLATETYPE", self.name, executable.te_userapp_rules)
7534 + def generate_inetd_rules(self):
7535 + return re.sub("TEMPLATETYPE", self.name, executable.te_inetd_rules)
7537 + def generate_dbusd_rules(self):
7538 + return re.sub("TEMPLATETYPE", self.name, executable.te_dbusd_rules)
7540 + def generate_tmp_rules(self):
7542 + return re.sub("TEMPLATETYPE", self.name, tmp.te_rules)
7546 + def generate_cgi_rules(self):
7548 + newte += re.sub("TEMPLATETYPE", self.name, executable.te_cgi_rules)
7551 + def generate_sandbox_rules(self):
7553 + newte += re.sub("TEMPLATETYPE", self.name, executable.te_sandbox_rules)
7556 + def generate_user_if(self):
7558 + if self.use_terminal or self.type == USER:
7559 + newif = re.sub("TEMPLATETYPE", self.name, executable.if_user_program_rules)
7561 + if self.type in ( TUSER, XUSER, AUSER, LUSER):
7562 + newif += re.sub("TEMPLATETYPE", self.name, executable.if_role_change_rules)
7565 + def generate_if(self):
7567 + newif += re.sub("TEMPLATETYPE", self.name, executable.if_heading_rules)
7568 + if self.program != "":
7569 + newif += re.sub("TEMPLATETYPE", self.name, executable.if_program_rules)
7570 + if self.initscript != "":
7571 + newif += re.sub("TEMPLATETYPE", self.name, executable.if_initscript_rules)
7573 + for d in self.DEFAULT_KEYS:
7574 + if len(self.DEFAULT_DIRS[d][1]) > 0:
7575 + newif += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].if_rules)
7576 + for i in self.DEFAULT_DIRS[d][1]:
7577 + if os.path.exists(i) and stat.S_ISSOCK(os.stat(i)[stat.ST_MODE]):
7578 + newif += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].if_stream_rules)
7580 + newif += self.generate_user_if()
7581 + newif += self.generate_dbus_if()
7582 + newif += self.generate_admin_if()
7583 + newif += self.generate_sandbox_if()
7587 + def generate_default_types(self):
7588 + return self.DEFAULT_TYPES[self.type][0]()
7590 + def generate_default_rules(self):
7591 + return self.DEFAULT_TYPES[self.type][1]()
7593 + def generate_roles_rules(self):
7595 + if self.type in ( TUSER, XUSER, AUSER, LUSER, EUSER):
7597 + if len(self.roles) > 0:
7598 + newte += re.sub("TEMPLATETYPE", self.name, user.te_sudo_rules)
7599 + newte += re.sub("TEMPLATETYPE", self.name, user.te_newrole_rules)
7600 + for role in self.roles:
7601 + tmp = re.sub("TEMPLATETYPE", self.name, user.te_roles_rules)
7602 + newte += re.sub("ROLE", role, tmp)
7605 + def generate_te(self):
7606 + newte = self.generate_default_types()
7607 + for d in self.DEFAULT_KEYS:
7608 + if len(self.DEFAULT_DIRS[d][1]) > 0:
7609 + # CGI scripts already have a rw_t
7610 + if self.type != CGI or d != "rw":
7611 + newte += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].te_types)
7614 +########################################
7619 + newte += self.generate_capabilities()
7620 + newte += self.generate_process()
7621 + newte += self.generate_network_types()
7622 + newte += self.generate_tmp_types()
7623 + newte += self.generate_booleans()
7624 + newte += self.generate_default_rules()
7625 + newte += self.generate_boolean_rules()
7627 + for d in self.DEFAULT_KEYS:
7628 + if len(self.DEFAULT_DIRS[d][1]) > 0:
7629 + newte += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].te_rules)
7630 + for i in self.DEFAULT_DIRS[d][1]:
7631 + if os.path.exists(i) and stat.S_ISSOCK(os.stat(i)[stat.ST_MODE]):
7632 + newte += re.sub("TEMPLATETYPE", self.name, self.DEFAULT_DIRS[d][2].te_stream_rules)
7635 + newte += self.generate_tmp_rules()
7636 + newte += self.generate_network_rules()
7637 + newte += self.generate_fd_rules()
7638 + newte += self.generate_etc_rules()
7639 + newte += self.generate_pam_rules()
7640 + newte += self.generate_uid_rules()
7641 + newte += self.generate_audit_rules()
7642 + newte += self.generate_syslog_rules()
7643 + newte += self.generate_localization_rules()
7644 + newte += self.generate_resolve_rules()
7645 + newte += self.generate_roles_rules()
7646 + newte += self.generate_mail_rules()
7647 + newte += self.generate_transition_rules()
7648 + newte += self.generate_admin_rules()
7649 + newte += self.generate_dbus_rules()
7650 + newte += self.generate_kerberos_rules()
7651 + newte += self.generate_manage_krb5_rcache_rules()
7655 + def generate_fc(self):
7658 + if self.type in USERS + [ SANDBOX ]:
7659 + return re.sub("EXECUTABLE", self.program, executable.fc_user)
7660 + if self.program == "":
7661 + raise ValueError(_("You must enter the executable path for your confined process"))
7663 + t1 = re.sub("EXECUTABLE", self.program, executable.fc_program)
7664 + fclist.append(re.sub("TEMPLATETYPE", self.name, t1))
7666 + if self.initscript != "":
7667 + t1 = re.sub("EXECUTABLE", self.initscript, executable.fc_initscript)
7668 + fclist.append(re.sub("TEMPLATETYPE", self.name, t1))
7670 + for i in self.files.keys():
7671 + if os.path.exists(i) and stat.S_ISSOCK(os.stat(i)[stat.ST_MODE]):
7672 + t1 = re.sub("TEMPLATETYPE", self.name, self.files[i][2].fc_sock_file)
7674 + t1 = re.sub("TEMPLATETYPE", self.name, self.files[i][2].fc_file)
7675 + t2 = re.sub("FILENAME", i, t1)
7676 + fclist.append(re.sub("FILETYPE", self.files[i][0], t2))
7678 + for i in self.dirs.keys():
7679 + t1 = re.sub("TEMPLATETYPE", self.name, self.dirs[i][2].fc_dir)
7680 + t2 = re.sub("FILENAME", i, t1)
7681 + fclist.append(re.sub("FILETYPE", self.dirs[i][0], t2))
7684 + newfc="\n".join(fclist)
7687 + def generate_user_sh(self):
7689 + if self.type not in ( TUSER, XUSER, AUSER, LUSER, EUSER):
7693 + for role in self.roles:
7694 + roles += " %s_r" % role
7696 + roles += " system_r"
7697 + if self.type == EUSER:
7698 + tmp = re.sub("TEMPLATETYPE", self.name, script.eusers)
7700 + tmp = re.sub("TEMPLATETYPE", self.name, script.users)
7701 + newsh += re.sub("ROLES", roles, tmp)
7703 + if self.type == RUSER:
7704 + for u in self.transition_users:
7705 + tmp = re.sub("TEMPLATETYPE", self.name, script.admin_trans)
7706 + newsh += re.sub("USER", u, tmp)
7708 + if self.type == LUSER:
7709 + newsh += re.sub("TEMPLATETYPE", self.name, script.min_login_user_default_context)
7711 + newsh += re.sub("TEMPLATETYPE", self.name, script.x_login_user_default_context)
7716 + def generate_sh(self):
7717 + temp = re.sub("TEMPLATETYPE", self.file_name, script.compile)
7718 + if self.type == EUSER:
7719 + newsh = re.sub("TEMPLATEFILE", "my%s" % self.file_name, temp)
7721 + newsh = re.sub("TEMPLATEFILE", self.file_name, temp)
7722 + if self.program != "":
7723 + newsh += re.sub("FILENAME", self.program, script.restorecon)
7724 + if self.initscript != "":
7725 + newsh += re.sub("FILENAME", self.initscript, script.restorecon)
7727 + for i in self.files.keys():
7728 + newsh += re.sub("FILENAME", i, script.restorecon)
7730 + for i in self.dirs.keys():
7731 + newsh += re.sub("FILENAME", i, script.restorecon)
7733 + for i in self.in_tcp[PORTS] + self.out_tcp[PORTS]:
7734 + if self.find_port(i,"tcp") == None:
7735 + t1 = re.sub("PORTNUM", "%d" % i, script.tcp_ports)
7736 + newsh += re.sub("TEMPLATETYPE", self.name, t1)
7738 + for i in self.in_udp[PORTS]:
7739 + if self.find_port(i,"udp") == None:
7740 + t1 = re.sub("PORTNUM", "%d" % i, script.udp_ports)
7741 + newsh += re.sub("TEMPLATETYPE", self.name, t1)
7743 + newsh += self.generate_user_sh()
7747 + def write_te(self, out_dir):
7748 + if self.type == EUSER:
7749 + tefile = "%s/my%s.te" % (out_dir, self.file_name)
7751 + tefile = "%s/%s.te" % (out_dir, self.file_name)
7752 + fd = open(tefile, "w")
7753 + fd.write(self.generate_te())
7757 + def write_sh(self, out_dir):
7758 + if self.type == EUSER:
7759 + shfile = "%s/my%s.sh" % (out_dir, self.file_name)
7761 + shfile = "%s/%s.sh" % (out_dir, self.file_name)
7762 + fd = open(shfile, "w")
7763 + fd.write(self.generate_sh())
7765 + os.chmod(shfile, 0750)
7768 + def write_if(self, out_dir):
7769 + if self.type == EUSER:
7770 + iffile = "%s/my%s.if" % (out_dir, self.file_name)
7772 + iffile = "%s/%s.if" % (out_dir, self.file_name)
7773 + fd = open(iffile, "w")
7774 + fd.write(self.generate_if())
7778 + def write_fc(self,out_dir):
7779 + if self.type == EUSER:
7780 + fcfile = "%s/my%s.fc" % (out_dir, self.file_name)
7782 + fcfile = "%s/%s.fc" % (out_dir, self.file_name)
7783 + fd = open(fcfile, "w")
7784 + fd.write(self.generate_fc())
7788 + def gen_writeable(self):
7789 + fd = os.popen("rpm -qlf %s" % self.program)
7790 + for f in fd.read().split():
7791 + for b in self.DEFAULT_DIRS:
7794 + if f.startswith(b):
7795 + if os.path.isfile(f):
7800 + if os.path.isfile("/var/run/%s.pid" % self.name):
7801 + self.add_file("/var/run/%s.pid" % self.name)
7803 + if os.path.isfile("/etc/rc.d/init.d/%s" % self.name):
7804 + self.set_init_script("/etc/rc\.d/init\.d/%s" % self.name)
7807 + def gen_symbols(self):
7808 + if self.type not in APPLICATIONS:
7811 + fd = os.popen("nm -D %s | grep U" % self.program)
7812 + for s in fd.read().split():
7813 + for b in self.symbols:
7814 + if s.startswith(b):
7815 + exec "self.%s" % self.symbols[b]
7818 + def generate(self, out_dir = "."):
7819 + self.write_te(out_dir)
7820 + self.write_if(out_dir)
7821 + self.write_fc(out_dir)
7822 + self.write_sh(out_dir)
7823 + out = "Created the following files in:\n%s/\n" % out_dir
7824 + out += "%s.te # %s\n" % (self.file_name, _("Type Enforcement file"))
7825 + out += "%s.if # %s\n" % (self.file_name, _("Interface file"))
7826 + out += "%s.fc # %s\n" % (self.file_name, _("File Contexts file"))
7827 + out += "%s.sh # %s\n" % (self.file_name, _("Setup Script"))
7830 +def errorExit(error):
7831 + sys.stderr.write("%s: " % sys.argv[0])
7832 + sys.stderr.write("%s\n" % error)
7833 + sys.stderr.flush()
7839 + tmpdir = tempfile.mkdtemp(prefix="polgen_")
7841 + mypolicy = policy("myrwho", DAEMON)
7842 + mypolicy.set_program("/usr/sbin/myrwhod")
7843 + mypolicy.set_init_script("/etc/init.d/myrwhod")
7844 + mypolicy.add_dir("/etc/nasd")
7845 + mypolicy.set_in_tcp(1, 0, 0, "513")
7846 + mypolicy.set_use_uid(True)
7847 + mypolicy.set_use_tmp(True)
7848 + mypolicy.set_use_syslog(True)
7849 + mypolicy.set_use_pam(True)
7850 + mypolicy.add_dir("/var/run/myrwho")
7851 + mypolicy.add_dir("/var/lib/myrwho")
7852 + print mypolicy.generate(tmpdir)
7854 + mypolicy = policy("mywhois", USER)
7855 + mypolicy.set_program("/usr/bin/jwhois")
7856 + mypolicy.set_out_tcp(0, "43,63,4321")
7857 + mypolicy.set_out_udp(0, "43,63,4321")
7858 + mypolicy.add_dir("/var/cache/jwhois")
7859 + mypolicy.set_transition_users(["staff_u"])
7860 + print mypolicy.generate(tmpdir)
7862 + mypolicy = policy("mytuser", TUSER)
7863 + mypolicy.set_admin_roles(["mydbadm"])
7864 + mypolicy.add_boolean("allow_mytuser_setuid", "Allow mytuser users to run setuid applications")
7865 + print mypolicy.generate(tmpdir)
7867 + mypolicy = policy("mycgi", CGI)
7868 + mypolicy.set_program("/var/www/cgi-bin/cgi")
7869 + mypolicy.set_in_tcp(1, 0, 0, "512, 55000-55000")
7870 + mypolicy.set_in_udp(1, 0, 0, "1513")
7871 + mypolicy.set_use_uid(True)
7872 + mypolicy.set_use_tmp(False)
7873 + mypolicy.set_use_syslog(True)
7874 + mypolicy.set_use_pam(True)
7875 + mypolicy.set_out_tcp(0,"8000")
7876 + print mypolicy.generate(tmpdir)
7878 + mypolicy = policy("myinetd", INETD)
7879 + mypolicy.set_program("/usr/bin/mytest")
7880 + mypolicy.set_in_tcp(1, 0, 0, "513")
7881 + mypolicy.set_in_udp(1, 0, 0, "1513")
7882 + mypolicy.set_use_uid(True)
7883 + mypolicy.set_use_tmp(True)
7884 + mypolicy.set_use_syslog(True)
7885 + mypolicy.set_use_pam(True)
7886 + mypolicy.add_file("/var/lib/mysql/mysql.sock")
7887 + mypolicy.add_file("/var/run/rpcbind.sock")
7888 + mypolicy.add_file("/var/run/daemon.pub")
7889 + mypolicy.add_file("/var/log/daemon.log")
7890 + mypolicy.add_dir("/var/lib/daemon")
7891 + mypolicy.add_dir("/etc/daemon")
7892 + mypolicy.add_dir("/etc/daemon/special")
7893 + mypolicy.set_use_uid(True)
7894 + mypolicy.set_use_syslog(True)
7895 + mypolicy.set_use_pam(True)
7896 + mypolicy.set_use_audit(True)
7897 + mypolicy.set_use_dbus(True)
7898 + mypolicy.set_use_terminal(True)
7899 + mypolicy.set_use_mail(True)
7900 + mypolicy.set_out_tcp(0,"8000")
7901 + print mypolicy.generate(tmpdir)
7904 + mypolicy = policy("mydbus", DBUS)
7905 + mypolicy.set_program("/usr/libexec/mydbus")
7906 + mypolicy.set_in_tcp(1, 0, 0, "513")
7907 + mypolicy.set_in_udp(1, 0, 0, "1513")
7908 + mypolicy.set_use_uid(True)
7909 + mypolicy.set_use_tmp(True)
7910 + mypolicy.set_use_syslog(True)
7911 + mypolicy.set_use_pam(True)
7912 + print mypolicy.generate(tmpdir)
7914 + mypolicy = policy("myxuser", XUSER)
7915 + mypolicy.set_in_tcp(1, 1, 1, "28920")
7916 + mypolicy.set_in_udp(0, 0, 1, "1513")
7917 + mypolicy.set_transition_domains(["mozilla"])
7918 + print mypolicy.generate(tmpdir)
7920 + mypolicy = policy("myuser", USER)
7921 + mypolicy.set_program("/usr/bin/myuser")
7922 + mypolicy.set_in_tcp(1, 0, 0, "513")
7923 + mypolicy.set_in_udp(1, 0, 0, "1513")
7924 + mypolicy.set_use_uid(True)
7925 + mypolicy.set_use_tmp(True)
7926 + mypolicy.set_use_syslog(True)
7927 + mypolicy.set_use_pam(True)
7928 + mypolicy.add_file("/var/lib/myuser/myuser.sock")
7929 + mypolicy.set_out_tcp(0,"8000")
7930 + mypolicy.set_transition_users(["unconfined_u", "staff_u"])
7931 + print mypolicy.generate(tmpdir)
7933 + mypolicy = policy("mysandbox", SANDBOX)
7934 + mypolicy.set_out_udp(0, "993")
7935 + print mypolicy.generate("/tmp")
7937 + mypolicy = policy("mydbadm", RUSER)
7938 + mypolicy.set_admin_domains(["postgresql", "mysql"])
7939 + print mypolicy.generate(tmpdir)
7941 + rc, output=commands.getstatusoutput("make -f /usr/share/selinux/devel/Makefile")
7943 + sys.exit(os.WEXITSTATUS(rc))
7945 +import os, sys, getopt, socket, random, fcntl
7951 +sepolgen [ -n moduleName ] [ -m ] [ -t type ] [ executable | Name ]
7954 + keys=poltype.keys()
7956 + print "\t%s\t%s" % (i, poltype[i])
7959 +if __name__ == '__main__':
7963 + gopts, cmds = getopt.getopt(sys.argv[1:], "ht:mn:",
7969 + for o, a in gopts:
7970 + if o == "-t" or o == "--type":
7972 + if int(a) not in poltype:
7973 + usage ("invalid type %s" % a )
7975 + usage ("invalid type %s" % a )
7979 + if o == "-m" or o == "--mount":
7982 + if o == "-n" or o == "--name":
7985 + if o == "-h" or o == "--help":
7992 + except getopt.error, error:
7993 + usage(_("Options Error %s ") % error.msg)
7995 + if len(cmds) == 0:
7996 + usage(_("Executable or Name required"))
8000 + name = os.path.basename(cmds[0]).replace("-","_")
8002 + mypolicy = policy(name, setype)
8003 + if setype not in USERS + [ SANDBOX ]:
8004 + mypolicy.set_program(cmd)
8006 + if setype in APPLICATIONS:
8007 + mypolicy.gen_writeable()
8008 + mypolicy.gen_symbols()
8009 + print mypolicy.generate()
8011 + except ValueError, e:
8013 diff -up policycoreutils-2.1.8/gui/portsPage.py.gui policycoreutils-2.1.8/gui/portsPage.py
8014 --- policycoreutils-2.1.8/gui/portsPage.py.gui 2011-11-07 15:12:01.906834233 -0500
8015 +++ policycoreutils-2.1.8/gui/portsPage.py 2011-11-07 15:12:01.906834233 -0500
8017 +## portsPage.py - show selinux mappings
8018 +## Copyright (C) 2006 Red Hat, Inc.
8020 +## This program is free software; you can redistribute it and/or modify
8021 +## it under the terms of the GNU General Public License as published by
8022 +## the Free Software Foundation; either version 2 of the License, or
8023 +## (at your option) any later version.
8025 +## This program is distributed in the hope that it will be useful,
8026 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
8027 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8028 +## GNU General Public License for more details.
8030 +## You should have received a copy of the GNU General Public License
8031 +## along with this program; if not, write to the Free Software
8032 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
8034 +## Author: Dan Walsh
8043 +from semanagePage import *;
8048 +PROGNAME = "policycoreutils"
8050 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
8051 +gettext.textdomain(PROGNAME)
8057 + gettext.install(PROGNAME,
8058 + localedir="/usr/share/locale",
8060 + codeset = 'utf-8')
8062 + import __builtin__
8063 + __builtin__.__dict__['_'] = unicode
8065 +class portsPage(semanagePage):
8066 + def __init__(self, xml):
8067 + semanagePage.__init__(self, xml, "ports", _("Network Port"))
8068 + xml.signal_connect("on_group_clicked", self.on_group_clicked)
8069 + self.group = False
8070 + self.ports_filter = xml.get_widget("portsFilterEntry")
8071 + self.ports_filter.connect("focus_out_event", self.filter_changed)
8072 + self.ports_filter.connect("activate", self.filter_changed)
8073 + self.ports_name_entry = xml.get_widget("portsNameEntry")
8074 + self.ports_protocol_combo = xml.get_widget("portsProtocolCombo")
8075 + self.ports_number_entry = xml.get_widget("portsNumberEntry")
8076 + self.ports_mls_entry = xml.get_widget("portsMLSEntry")
8077 + self.ports_add_button = xml.get_widget("portsAddButton")
8078 + self.ports_properties_button = xml.get_widget("portsPropertiesButton")
8079 + self.ports_delete_button = xml.get_widget("portsDeleteButton")
8080 + liststore = self.ports_protocol_combo.get_model()
8081 + iter = liststore.get_iter_first()
8082 + self.ports_protocol_combo.set_active_iter(iter)
8087 + def filter_changed(self, *arg):
8088 + filter = arg[0].get_text()
8089 + if filter != self.filter:
8093 + self.group_load(filter)
8095 + def init_store(self):
8096 + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING , gobject.TYPE_STRING)
8097 + self.view.set_model(self.store)
8098 + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
8100 + self.view.set_search_equal_func(self.search)
8101 + col = gtk.TreeViewColumn(_("SELinux Port\nType"), gtk.CellRendererText(), text = TYPE_COL)
8102 + col.set_sort_column_id(TYPE_COL)
8103 + col.set_resizable(True)
8104 + self.view.append_column(col)
8105 + self.store.set_sort_column_id(TYPE_COL, gtk.SORT_ASCENDING)
8107 + col = gtk.TreeViewColumn(_("Protocol"), gtk.CellRendererText(), text = PROTOCOL_COL)
8108 + col.set_sort_column_id(PROTOCOL_COL)
8109 + col.set_resizable(True)
8110 + self.view.append_column(col)
8112 + self.mls_col = gtk.TreeViewColumn(_("MLS/MCS\nLevel"), gtk.CellRendererText(), text = MLS_COL)
8113 + self.mls_col.set_resizable(True)
8114 + self.mls_col.set_sort_column_id(MLS_COL)
8115 + self.view.append_column(self.mls_col)
8117 + col = gtk.TreeViewColumn(_("Port"), gtk.CellRendererText(), text = PORT_COL)
8118 + col.set_sort_column_id(PORT_COL)
8119 + col.set_resizable(True)
8120 + self.view.append_column(col)
8121 + self.store.set_sort_func(PORT_COL,self.sort_int, "")
8123 + def sort_int(self, treemodel, iter1, iter2, user_data):
8125 + p1 = int(treemodel.get_value(iter1,PORT_COL).split('-')[0])
8126 + p2 = int(treemodel.get_value(iter2,PORT_COL).split('-')[0])
8135 + def load(self,filter = ""):
8136 + self.filter=filter
8137 + self.port = seobject.portRecords()
8138 + dict = self.port.get_all(self.local)
8139 + keys = dict.keys()
8141 + self.store.clear()
8143 + if not (self.match(str(k[0]), filter) or self.match(dict[k][0], filter) or self.match(k[2], filter) or self.match(dict[k][1], filter) or self.match(dict[k][1], filter)):
8145 + iter = self.store.append()
8147 + self.store.set_value(iter, PORT_COL, k[0])
8149 + rec = "%s-%s" % k[:2]
8150 + self.store.set_value(iter, PORT_COL, rec)
8151 + self.store.set_value(iter, TYPE_COL, dict[k][0])
8152 + self.store.set_value(iter, PROTOCOL_COL, k[2])
8153 + self.store.set_value(iter, MLS_COL, dict[k][1])
8154 + self.view.get_selection().select_path ((0,))
8156 + def group_load(self, filter = ""):
8157 + self.filter=filter
8158 + self.port = seobject.portRecords()
8159 + dict = self.port.get_all_by_type(self.local)
8160 + keys = dict.keys()
8162 + self.store.clear()
8164 + ports_string = ", ".join(dict[k])
8165 + if not (self.match(ports_string, filter) or self.match(k[0], filter) or self.match(k[1], filter) ):
8167 + iter = self.store.append()
8168 + self.store.set_value(iter, TYPE_COL, k[0])
8169 + self.store.set_value(iter, PROTOCOL_COL, k[1])
8170 + self.store.set_value(iter, PORT_COL, ports_string)
8171 + self.store.set_value(iter, MLS_COL, "")
8172 + self.view.get_selection().select_path ((0,))
8174 + def propertiesDialog(self):
8176 + semanagePage.propertiesDialog(self)
8178 + def dialogInit(self):
8179 + store, iter = self.view.get_selection().get_selected()
8180 + self.ports_number_entry.set_text(store.get_value(iter, PORT_COL))
8181 + self.ports_number_entry.set_sensitive(False)
8182 + self.ports_protocol_combo.set_sensitive(False)
8183 + self.ports_name_entry.set_text(store.get_value(iter, TYPE_COL))
8184 + self.ports_mls_entry.set_text(store.get_value(iter, MLS_COL))
8185 + protocol = store.get_value(iter, PROTOCOL_COL)
8186 + liststore = self.ports_protocol_combo.get_model()
8187 + iter = liststore.get_iter_first()
8188 + while iter != None and liststore.get_value(iter,0) != protocol:
8189 + iter = liststore.iter_next(iter)
8191 + self.ports_protocol_combo.set_active_iter(iter)
8193 + def dialogClear(self):
8194 + self.ports_number_entry.set_text("")
8195 + self.ports_number_entry.set_sensitive(True)
8196 + self.ports_protocol_combo.set_sensitive(True)
8197 + self.ports_name_entry.set_text("")
8198 + self.ports_mls_entry.set_text("s0")
8201 + store, iter = self.view.get_selection().get_selected()
8202 + port = store.get_value(iter, PORT_COL)
8203 + protocol = store.get_value(iter, 1)
8206 + (rc, out) = commands.getstatusoutput("semanage port -d -p %s %s" % (protocol, port))
8209 + return self.error(out)
8210 + store.remove(iter)
8211 + self.view.get_selection().select_path ((0,))
8212 + except ValueError, e:
8213 + self.error(e.args[0])
8216 + target = self.ports_name_entry.get_text().strip()
8217 + mls = self.ports_mls_entry.get_text().strip()
8218 + port_number = self.ports_number_entry.get_text().strip()
8219 + if port_number == "":
8221 + for i in port_number.split("-"):
8222 + if not i.isdigit():
8223 + self.error(_("Port number \"%s\" is not valid. 0 < PORT_NUMBER < 65536 ") % port_number )
8225 + list_model = self.ports_protocol_combo.get_model()
8226 + iter = self.ports_protocol_combo.get_active_iter()
8227 + protocol = list_model.get_value(iter,0)
8229 + (rc, out) = commands.getstatusoutput("semanage port -a -p %s -r %s -t %s %s" % (protocol, mls, target, port_number))
8234 + iter = self.store.append()
8236 + self.store.set_value(iter, TYPE_COL, target)
8237 + self.store.set_value(iter, PORT_COL, port_number)
8238 + self.store.set_value(iter, PROTOCOL_COL, protocol)
8239 + self.store.set_value(iter, MLS_COL, mls)
8242 + target = self.ports_name_entry.get_text().strip()
8243 + mls = self.ports_mls_entry.get_text().strip()
8244 + port_number = self.ports_number_entry.get_text().strip()
8245 + list_model = self.ports_protocol_combo.get_model()
8246 + iter = self.ports_protocol_combo.get_active_iter()
8247 + protocol = list_model.get_value(iter,0)
8249 + (rc, out) = commands.getstatusoutput("semanage port -m -p %s -r %s -t %s %s" % (protocol, mls, target, port_number))
8254 + store, iter = self.view.get_selection().get_selected()
8255 + self.store.set_value(iter, TYPE_COL, target)
8256 + self.store.set_value(iter, PORT_COL, port_number)
8257 + self.store.set_value(iter, PROTOCOL_COL, protocol)
8258 + self.store.set_value(iter, MLS_COL, mls)
8260 + def on_group_clicked(self, button):
8261 + self.ports_add_button.set_sensitive(self.group)
8262 + self.ports_properties_button.set_sensitive(self.group)
8263 + self.ports_delete_button.set_sensitive(self.group)
8264 + self.mls_col.set_visible(self.group)
8266 + self.group = not self.group
8268 + button.set_label(_("List View"))
8269 + self.group_load(self.filter)
8271 + button.set_label(_("Group View"))
8272 + self.load(self.filter)
8276 diff -up policycoreutils-2.1.8/gui/selinux.tbl.gui policycoreutils-2.1.8/gui/selinux.tbl
8277 --- policycoreutils-2.1.8/gui/selinux.tbl.gui 2011-11-07 15:12:01.907834233 -0500
8278 +++ policycoreutils-2.1.8/gui/selinux.tbl 2011-11-07 15:12:01.907834233 -0500
8280 +acct_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for acct daemon")
8281 +allow_daemons_dump_core _("Admin") _("Allow all daemons to write corefiles to /")
8282 +allow_daemons_use_tty _("Admin") _("Allow all daemons the ability to use unallocated ttys")
8283 +allow_gadmin_exec_content _("User Privs") _("Allow gadmin SELinux user account to execute files in home directory or /tmp")
8284 +allow_guest_exec_content _("User Privs") _("Allow guest SELinux user account to execute files in home directory or /tmp")
8285 +allow_java_execstack _("Memory Protection") _("Allow java executable stack")
8286 +allow_mount_anyfile _("Mount") _("Allow mount to mount any file")
8287 +allow_mounton_anydir _("Mount") _("Allow mount to mount any directory")
8288 +allow_mplayer_execstack _("Memory Protection") _("Allow mplayer executable stack")
8289 +allow_ssh_keysign _("SSH") _("Allow ssh to run ssh-keysign")
8290 +allow_staff_exec_content _("User Privs") _("Allow staff SELinux user account to execute files in home directory or /tmp")
8291 +allow_sysadm_exec_content _("User Privs") _("Allow sysadm SELinux user account to execute files in home directory or /tmp")
8292 +allow_unconfined_exec_content _("User Privs") _("Allow unconfined SELinux user account to execute files in home directory or /tmp")
8293 +allow_unlabeled_packets _("Network Configuration") _("Allow unlabeled packets to flow on the network")
8294 +allow_user_exec_content _("User Privs") _("Allow user SELinux user account to execute files in home directory or /tmp")
8295 +allow_unconfined_execmem_dyntrans _("Memory Protection") _("Allow unconfined to dyntrans to unconfined_execmem")
8296 +allow_user_mysql_connect _("Databases") _("Allow user to connect to mysql socket")
8297 +allow_user_postgresql_connect _("Databases") _("Allow user to connect to postgres socket")
8298 +allow_write_xshm _("XServer") _("Allow clients to write to X shared memory")
8299 +allow_xguest_exec_content _("User Privs") _("Allow xguest SELinux user account to execute files in home directory or /tmp")
8300 +allow_ypbind _("NIS") _("Allow daemons to run with NIS")
8301 +browser_confine_staff _("Web Applications") _("Transition staff SELinux user to Web Browser Domain")
8302 +browser_confine_sysadm _("Web Applications") _("Transition sysadm SELinux user to Web Browser Domain")
8303 +browser_confine_user _("Web Applications") _("Transition user SELinux user to Web Browser Domain")
8304 +browser_confine_xguest _("Web Applications") _("Transition xguest SELinux user to Web Browser Domain")
8305 +browser_write_staff_data _("Web Applications") _("Allow staff Web Browsers to write to home directories")
8306 +browser_write_sysadm_data _("Web Applications") _("Allow staff Web Browsers to write to home directories")
8307 +browser_write_user_data _("Web Applications") _("Allow staff Web Browsers to write to home directories")
8308 +browser_write_xguest_data _("Web Applications") _("Allow staff Web Browsers to write to home directories")
8309 +amanda_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for amanda")
8310 +amavis_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for amavis")
8311 +apmd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for apmd daemon")
8312 +arpwatch_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for arpwatch daemon")
8313 +auditd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for auditd daemon")
8314 +automount_disable_trans _("Mount") _("Disable SELinux protection for automount daemon")
8315 +avahi_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for avahi")
8316 +bluetooth_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for bluetooth daemon")
8317 +canna_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for canna daemon")
8318 +cardmgr_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for cardmgr daemon")
8319 +ccs_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for Cluster Server")
8320 +cdrecord_read_content _("User Privs") _("Allow cdrecord to read various content. nfs, samba, removable devices, user temp and untrusted content files")
8321 +ciped_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ciped daemon")
8322 +clamd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for clamd daemon")
8323 +clamscan_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for clamscan")
8324 +clvmd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for clvmd")
8325 +comsat_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for comsat daemon")
8326 +courier_authdaemon_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
8327 +courier_pcp_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
8328 +courier_pop_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
8329 +courier_sqwebmail_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
8330 +courier_tcpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for courier daemon")
8331 +cpucontrol_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for cpucontrol daemon")
8332 +cpuspeed_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for cpuspeed daemon")
8333 +crond_disable_trans _("Cron") _("Disable SELinux protection for crond daemon")
8334 +cupsd_config_disable_trans _("Printing") _("Disable SELinux protection for cupsd back end server")
8335 +cupsd_disable_trans _("Printing") _("Disable SELinux protection for cupsd daemon")
8336 +cupsd_lpd_disable_trans _("Printing") _("Disable SELinux protection for cupsd_lpd")
8337 +cvs_disable_trans _("CVS") _("Disable SELinux protection for cvs daemon")
8338 +cyrus_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for cyrus daemon")
8339 +dbskkd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dbskkd daemon")
8340 +dbusd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dbusd daemon")
8341 +dccd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dccd")
8342 +dccifd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dccifd")
8343 +dccm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dccm")
8344 +ddt_client_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ddt daemon")
8345 +devfsd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for devfsd daemon")
8346 +dhcpc_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dhcpc daemon")
8347 +dhcpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dhcpd daemon")
8348 +dictd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dictd daemon")
8349 +direct_sysadm_daemon _("Admin") _("Allow sysadm_t to directly start daemons")
8350 +disable_evolution_trans _("Web Applications") _("Disable SELinux protection for Evolution")
8351 +disable_games_trans _("Games") _("Disable SELinux protection for games")
8352 +disable_mozilla_trans _("Web Applications") _("Disable SELinux protection for the web browsers")
8353 +disable_thunderbird_trans _("Web Applications") _("Disable SELinux protection for Thunderbird")
8354 +distccd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for distccd daemon")
8355 +dmesg_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dmesg daemon")
8356 +dnsmasq_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dnsmasq daemon")
8357 +dovecot_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for dovecot daemon")
8358 +entropyd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for entropyd daemon")
8359 +fetchmail_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for fetchmail")
8360 +fingerd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for fingerd daemon")
8361 +freshclam_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for freshclam daemon")
8362 +fsdaemon_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for fsdaemon daemon")
8363 +gpm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for gpm daemon")
8364 +gssd_disable_trans _("NFS") _("Disable SELinux protection for gss daemon")
8365 +hald_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for Hal daemon")
8366 +hide_broken_symptoms _("Compatibility") _("Do not audit things that we know to be broken but which are not security risks")
8367 +hostname_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for hostname daemon")
8368 +hotplug_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for hotplug daemon")
8369 +howl_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for howl daemon")
8370 +hplip_disable_trans _("Printing") _("Disable SELinux protection for cups hplip daemon")
8371 +httpd_rotatelogs_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for httpd rotatelogs")
8372 +httpd_suexec_disable_trans _("HTTPD Service") _("Disable SELinux protection for http suexec")
8373 +hwclock_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for hwclock daemon")
8374 +i18n_input_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for i18n daemon")
8375 +imazesrv_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for imazesrv daemon")
8376 +inetd_child_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for inetd child daemons")
8377 +inetd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for inetd daemon")
8378 +innd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for innd daemon")
8379 +iptables_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for iptables daemon")
8380 +ircd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ircd daemon")
8381 +irqbalance_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for irqbalance daemon")
8382 +iscsid_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for iscsi daemon")
8383 +jabberd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for jabberd daemon")
8384 +kadmind_disable_trans _("Kerberos") _("Disable SELinux protection for kadmind daemon")
8385 +klogd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for klogd daemon")
8386 +krb5kdc_disable_trans _("Kerberos") _("Disable SELinux protection for krb5kdc daemon")
8387 +ktalkd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ktalk daemons")
8388 +kudzu_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for kudzu daemon")
8389 +locate_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for locate daemon")
8390 +lpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for lpd daemon")
8391 +lrrd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for lrrd daemon")
8392 +lvm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for lvm daemon")
8393 +mailman_mail_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for mailman")
8394 +mail_read_content _("Web Applications") _("Allow evolution and thunderbird to read user files")
8395 +mdadm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for mdadm daemon")
8396 +monopd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for monopd daemon")
8397 +mozilla_read_content _("Web Applications") _("Allow the mozilla browser to read user files")
8398 +mrtg_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for mrtg daemon")
8399 +mysqld_disable_trans _("Databases") _("Disable SELinux protection for mysqld daemon")
8400 +nagios_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for nagios daemon")
8401 +named_disable_trans _("Name Service") _("Disable SELinux protection for named daemon")
8402 +nessusd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for nessusd daemon")
8403 +NetworkManager_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for NetworkManager")
8404 +nfsd_disable_trans _("NFS") _("Disable SELinux protection for nfsd daemon")
8405 +nmbd_disable_trans _("Samba") _("Disable SELinux protection for nmbd daemon")
8406 +nrpe_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for nrpe daemon")
8407 +nscd_disable_trans _("Name Service") _("Disable SELinux protection for nscd daemon")
8408 +nsd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for nsd daemon")
8409 +ntpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ntpd daemon")
8410 +oddjob_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for oddjob")
8411 +oddjob_mkhomedir_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for oddjob_mkhomedir")
8412 +openvpn_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for openvpn daemon")
8413 +pam_console_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pam daemon")
8414 +pegasus_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pegasus")
8415 +perdition_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for perdition daemon")
8416 +portmap_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for portmap daemon")
8417 +portslave_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for portslave daemon")
8418 +postfix_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for postfix")
8419 +postgresql_disable_trans _("Databases") _("Disable SELinux protection for postgresql daemon")
8420 +pppd_for_user _("pppd") _("Allow pppd to be run for a regular user")
8421 +pptp_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pptp")
8422 +prelink_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for prelink daemon")
8423 +privoxy_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for privoxy daemon")
8424 +ptal_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ptal daemon")
8425 +pxe_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pxe daemon")
8426 +pyzord_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for pyzord")
8427 +quota_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for quota daemon")
8428 +radiusd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for radiusd daemon")
8429 +radvd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for radvd daemon")
8430 +rdisc_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rdisc")
8431 +readahead_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for readahead")
8432 +read_default_t _("Admin") _("Allow programs to read files in non-standard locations (default_t)")
8433 +restorecond_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for restorecond")
8434 +rhgb_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rhgb daemon")
8435 +ricci_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ricci")
8436 +ricci_modclusterd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ricci_modclusterd")
8437 +rlogind_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rlogind daemon")
8438 +rpcd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rpcd daemon")
8439 +rshd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for rshd")
8440 +rsync_disable_trans _("rsync") _("Disable SELinux protection for rsync daemon")
8441 +run_ssh_inetd _("SSH") _("Allow ssh to run from inetd instead of as a daemon")
8442 +samba_share_nfs _("Samba") _("Allow Samba to share nfs directories")
8443 +allow_saslauthd_read_shadow _("SASL authentication server") _("Allow sasl authentication server to read /etc/shadow")
8444 +allow_xserver_execmem _("XServer") _("Allow X-Windows server to map a memory region as both executable and writable")
8445 +saslauthd_disable_trans _("SASL authentication server") _("Disable SELinux protection for saslauthd daemon")
8446 +scannerdaemon_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for scannerdaemon daemon")
8447 +secure_mode _("Admin") _("Do not allow transition to sysadm_t, sudo and su effected")
8448 +secure_mode_insmod _("Admin") _("Do not allow any processes to load kernel modules")
8449 +secure_mode_policyload _("Admin") _("Do not allow any processes to modify kernel SELinux policy")
8450 +sendmail_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for sendmail daemon")
8451 +setrans_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for setrans")
8452 +setroubleshootd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for setroubleshoot daemon")
8453 +slapd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for slapd daemon")
8454 +slrnpull_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for slrnpull daemon")
8455 +smbd_disable_trans _("Samba") _("Disable SELinux protection for smbd daemon")
8456 +snmpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for snmpd daemon")
8457 +snort_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for snort daemon")
8458 +soundd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for soundd daemon")
8459 +sound_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for sound daemon")
8460 +spamd_disable_trans _("Spam Protection") _("Disable SELinux protection for spamd daemon")
8461 +spamd_enable_home_dirs _("Spam Protection") _("Allow spamd to access home directories")
8462 +spamassassin_can_network _("Spam Protection") _("Allow Spam Assassin daemon network access")
8463 +speedmgmt_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for speedmgmt daemon")
8464 +squid_connect_any _("Squid") _("Allow squid daemon to connect to the network")
8465 +squid_disable_trans _("Squid") _("Disable SELinux protection for squid daemon")
8466 +ssh_keygen_disable_trans _("SSH") _("Disable SELinux protection for ssh daemon")
8467 +ssh_sysadm_login _("SSH") _("Allow ssh logins as sysadm_r:sysadm_t")
8468 +staff_read_sysadm_file _("Admin") _("Allow staff_r users to search the sysadm home dir and read files (such as ~/.bashrc)")
8469 +stunnel_disable_trans _("Universal SSL tunnel") _("Disable SELinux protection for stunnel daemon")
8470 +stunnel_is_daemon _("Universal SSL tunnel") _("Allow stunnel daemon to run as standalone, outside of xinetd")
8471 +swat_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for swat daemon")
8472 +sxid_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for sxid daemon")
8473 +syslogd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for syslogd daemon")
8474 +system_crond_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for system cron jobs")
8475 +tcpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for tcp daemon")
8476 +telnetd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for telnet daemon")
8477 +tftpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for tftpd daemon")
8478 +transproxy_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for transproxy daemon")
8479 +udev_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for udev daemon")
8480 +uml_switch_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for uml daemon")
8481 +unlimitedInetd _("Admin") _("Allow xinetd to run unconfined, including any services it starts that do not have a domain transition explicitly defined")
8482 +unlimitedRC _("Admin") _("Allow rc scripts to run unconfined, including any daemon started by an rc script that does not have a domain transition explicitly defined")
8483 +unlimitedRPM _("Admin") _("Allow rpm to run unconfined")
8484 +unlimitedUtils _("Admin") _("Allow privileged utilities like hotplug and insmod to run unconfined")
8485 +updfstab_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for updfstab daemon")
8486 +uptimed_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for uptimed daemon")
8487 +user_canbe_sysadm _("User Privs") _("Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, only staff_r can do so")
8488 +user_can_mount _("Mount") _("Allow users to execute the mount command")
8489 +user_direct_mouse _("User Privs") _("Allow regular users direct mouse access (only allow the X server)")
8490 +user_dmesg _("User Privs") _("Allow users to run the dmesg command")
8491 +user_net_control _("User Privs") _("Allow users to control network interfaces (also needs USERCTL=true)")
8492 +user_ping _("User Privs") _("Allow normal user to execute ping")
8493 +user_rw_noexattrfile _("User Privs") _("Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)")
8494 +user_rw_usb _("User Privs") _("Allow users to rw usb devices")
8495 +user_tcp_server _("User Privs") _("Allow users to run TCP servers (bind to ports and accept connection from the same domain and outside users) disabling this forces FTP passive mode and may change other protocols")
8496 +user_ttyfile_stat _("User Privs") _("Allow user to stat ttyfiles")
8497 +uucpd_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for uucpd daemon")
8498 +vmware_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for vmware daemon")
8499 +watchdog_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for watchdog daemon")
8500 +winbind_disable_trans _("Samba") _("Disable SELinux protection for winbind daemon")
8501 +xdm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for xdm daemon")
8502 +xdm_sysadm_login _("XServer") _("Allow xdm logins as sysadm_r:sysadm_t")
8503 +xend_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for xen daemon")
8504 +xen_use_raw_disk _("XEN") _("Allow xen to read/write physical disk devices")
8505 +xfs_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for xfs daemon")
8506 +xm_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for xen control")
8507 +ypbind_disable_trans _("NIS") _("Disable SELinux protection for ypbind daemon")
8508 +yppasswdd_disable_trans _("NIS") _("Disable SELinux protection for NIS Password Daemon")
8509 +ypserv_disable_trans _("SELinux Service Protection") _("Disable SELinux protection for ypserv daemon")
8510 +ypxfr_disable_trans _("NIS") _("Disable SELinux protection for NIS Transfer Daemon")
8511 +webadm_manage_user_files _("HTTPD Service") _("Allow SELinux webadm user to manage unprivileged users home directories")
8512 +webadm_read_user_files _("HTTPD Service") _("Allow SELinux webadm user to read unprivileged users home directories")
8514 diff -up policycoreutils-2.1.8/gui/semanagePage.py.gui policycoreutils-2.1.8/gui/semanagePage.py
8515 --- policycoreutils-2.1.8/gui/semanagePage.py.gui 2011-11-07 15:12:01.908834234 -0500
8516 +++ policycoreutils-2.1.8/gui/semanagePage.py 2011-11-07 15:12:01.908834234 -0500
8518 +## semanagePage.py - show selinux mappings
8519 +## Copyright (C) 2006 Red Hat, Inc.
8521 +## This program is free software; you can redistribute it and/or modify
8522 +## it under the terms of the GNU General Public License as published by
8523 +## the Free Software Foundation; either version 2 of the License, or
8524 +## (at your option) any later version.
8526 +## This program is distributed in the hope that it will be useful,
8527 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
8528 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8529 +## GNU General Public License for more details.
8531 +## You should have received a copy of the GNU General Public License
8532 +## along with this program; if not, write to the Free Software
8533 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
8535 +## Author: Dan Walsh
8547 +PROGNAME="policycoreutils"
8549 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
8550 +gettext.textdomain(PROGNAME)
8552 + gettext.install(PROGNAME,
8553 + localedir="/usr/share/locale",
8555 + codeset = 'utf-8')
8557 + import __builtin__
8558 + __builtin__.__dict__['_'] = unicode
8561 + while gtk.events_pending():
8562 + gtk.main_iteration()
8564 +class semanagePage:
8565 + def __init__(self, xml, name, description):
8567 + self.window = self.xml.get_widget("mainWindow").get_root_window()
8568 + self.busy_cursor = gtk.gdk.Cursor(gtk.gdk.WATCH)
8569 + self.ready_cursor = gtk.gdk.Cursor(gtk.gdk.LEFT_PTR)
8571 + self.local = False
8572 + self.view = xml.get_widget("%sView" % name)
8573 + self.dialog = xml.get_widget("%sDialog" % name)
8574 + self.filter_entry = xml.get_widget("%sFilterEntry" % name )
8575 + self.filter_entry.connect("focus_out_event", self.filter_changed)
8576 + self.filter_entry.connect("activate", self.filter_changed)
8578 + self.view.connect("row_activated", self.rowActivated)
8579 + self.view.get_selection().connect("changed", self.itemSelected)
8580 + self.description = description;
8583 + self.window.set_cursor(self.busy_cursor)
8587 + self.window.set_cursor(self.ready_cursor)
8590 + def get_description(self):
8591 + return self.description
8593 + def itemSelected(self, args):
8596 + def filter_changed(self, *arg):
8597 + filter = arg[0].get_text()
8598 + if filter != self.filter:
8601 + def search(self, model, col, key, i):
8602 + sort_col = self.store.get_sort_column_id()[0]
8603 + val = model.get_value(i,sort_col)
8604 + if val.lower().startswith(key.lower()):
8608 + def match(self, target, filter):
8612 + if t.find(f) >= 0:
8618 + def rowActivated(self, view, row, Column):
8619 + self.propertiesDialog()
8621 + def verify(self, message, title="" ):
8622 + dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
8623 + gtk.BUTTONS_YES_NO,
8625 + dlg.set_title(title)
8626 + dlg.set_position(gtk.WIN_POS_MOUSE)
8632 + def error(self, message):
8633 + dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR,
8634 + gtk.BUTTONS_CLOSE,
8636 + dlg.set_position(gtk.WIN_POS_MOUSE)
8641 + def deleteDialog(self):
8642 + store, iter = self.view.get_selection().get_selected()
8643 + if self.verify(_("Are you sure you want to delete %s '%s'?" % (self.description, store.get_value(iter, 0))), _("Delete %s" % self.description)) == gtk.RESPONSE_YES:
8646 + def use_menus(self):
8649 + def addDialog(self):
8650 + self.dialogClear()
8651 + self.dialog.set_title(_("Add %s" % self.description))
8652 + self.dialog.set_position(gtk.WIN_POS_MOUSE)
8654 + while self.dialog.run() == gtk.RESPONSE_OK:
8656 + if self.add() == False:
8659 + except ValueError, e:
8660 + self.error(e.args[0])
8661 + self.dialog.hide()
8663 + def propertiesDialog(self):
8665 + self.dialog.set_title(_("Modify %s" % self.description))
8666 + self.dialog.set_position(gtk.WIN_POS_MOUSE)
8667 + while self.dialog.run() == gtk.RESPONSE_OK:
8669 + if self.modify() == False:
8672 + except ValueError, e:
8673 + self.error(e.args[0])
8674 + self.dialog.hide()
8676 + def on_local_clicked(self, button):
8677 + self.local = not self.local
8679 + button.set_label(_("all"))
8681 + button.set_label(_("Customized"))
8683 + self.load(self.filter)
8686 diff -up policycoreutils-2.1.8/gui/statusPage.py.gui policycoreutils-2.1.8/gui/statusPage.py
8687 --- policycoreutils-2.1.8/gui/statusPage.py.gui 2011-11-07 15:12:01.909834235 -0500
8688 +++ policycoreutils-2.1.8/gui/statusPage.py 2011-11-07 15:12:01.909834235 -0500
8690 +# statusPage.py - show selinux status
8691 +## Copyright (C) 2006-2009 Red Hat, Inc.
8693 +## This program is free software; you can redistribute it and/or modify
8694 +## it under the terms of the GNU General Public License as published by
8695 +## the Free Software Foundation; either version 2 of the License, or
8696 +## (at your option) any later version.
8698 +## This program is distributed in the hope that it will be useful,
8699 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
8700 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8701 +## GNU General Public License for more details.
8703 +## You should have received a copy of the GNU General Public License
8704 +## along with this program; if not, write to the Free Software
8705 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
8707 +## Author: Dan Walsh
8716 +INSTALLPATH = '/usr/share/system-config-selinux'
8717 +sys.path.append(INSTALLPATH)
8723 +modearray = ( "disabled", "permissive", "enforcing" )
8725 +SELINUXDIR = "/etc/selinux/"
8726 +RELABELFILE = "/.autorelabel"
8731 +PROGNAME="policycoreutils"
8733 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
8734 +gettext.textdomain(PROGNAME)
8737 + gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
8739 + import __builtin__
8740 + __builtin__.__dict__['_'] = unicode
8743 + def __init__(self, xml):
8745 + self.needRelabel = False
8747 + self.type = selinux.selinux_getpolicytype()
8748 + # Bring in widgets from glade file.
8749 + self.typeHBox = xml.get_widget("typeHBox")
8750 + self.selinuxTypeOptionMenu = xml.get_widget("selinuxTypeOptionMenu")
8751 + self.typeLabel = xml.get_widget("typeLabel")
8752 + self.enabledOptionMenu = xml.get_widget("enabledOptionMenu")
8753 + self.currentOptionMenu = xml.get_widget("currentOptionMenu")
8754 + self.relabel_checkbutton = xml.get_widget("relabelCheckbutton")
8755 + self.relabel_checkbutton.set_active(self.is_relabel())
8756 + self.relabel_checkbutton.connect("toggled", self.on_relabel_toggle)
8757 + if self.get_current_mode() == ENFORCING or self.get_current_mode() == PERMISSIVE:
8758 + self.currentOptionMenu.append_text(_("Permissive"))
8759 + self.currentOptionMenu.append_text(_("Enforcing"))
8760 + self.currentOptionMenu.set_active(self.get_current_mode())
8761 + self.currentOptionMenu.connect("changed", self.set_current_mode)
8762 + self.currentOptionMenu.set_sensitive(True)
8764 + self.currentOptionMenu.append_text(_("Disabled"))
8765 + self.currentOptionMenu.set_active(0)
8766 + self.currentOptionMenu.set_sensitive(False)
8768 + if self.read_selinux_config() == None:
8769 + self.selinuxsupport = False
8771 + self.enabledOptionMenu.connect("changed", self.enabled_changed)
8773 + # This line must come after read_selinux_config
8775 + self.selinuxTypeOptionMenu.connect("changed", self.typemenu_changed)
8777 + self.typeLabel.set_mnemonic_widget(self.selinuxTypeOptionMenu)
8779 + def use_menus(self):
8782 + def get_description(self):
8783 + return _("Status")
8785 + def get_current_mode(self):
8786 + if selinux.is_selinux_enabled():
8787 + if selinux.security_getenforce() > 0:
8794 + def set_current_mode(self,menu):
8795 + selinux.security_setenforce(menu.get_active() == 1)
8797 + def is_relabel(self):
8798 + return os.access(RELABELFILE, os.F_OK) != 0
8800 + def on_relabel_toggle(self,button):
8801 + if button.get_active():
8802 + fd = open(RELABELFILE,"w")
8805 + if os.access(RELABELFILE, os.F_OK) != 0:
8806 + os.unlink(RELABELFILE)
8808 + def verify(self, message):
8809 + dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO,
8810 + gtk.BUTTONS_YES_NO,
8812 + dlg.set_position(gtk.WIN_POS_MOUSE)
8818 + def typemenu_changed(self, menu):
8819 + type = self.get_type()
8820 + enabled = self.enabledOptionMenu.get_active()
8821 + if self.initialtype != type:
8822 + if self.verify(_("Changing the policy type will cause a relabel of the entire file system on the next boot. Relabeling takes a long time depending on the size of the file system. Do you wish to continue?")) == gtk.RESPONSE_NO:
8823 + menu.set_active(self.typeHistory)
8826 + self.relabel_checkbutton.set_active(True)
8828 + self.write_selinux_config(modearray[enabled], type )
8829 + self.typeHistory = menu.get_active()
8831 + def enabled_changed(self, combo):
8832 + enabled = combo.get_active()
8833 + type = self.get_type()
8835 + if self.initEnabled != DISABLED and enabled == DISABLED:
8836 + if self.verify(_("Changing to SELinux disabled requires a reboot. It is not recommended. If you later decide to turn SELinux back on, the system will be required to relabel. If you just want to see if SELinux is causing a problem on your system, you can go to permissive mode which will only log errors and not enforce SELinux policy. Permissive mode does not require a reboot Do you wish to continue?")) == gtk.RESPONSE_NO:
8837 + combo.set_active(self.enabled)
8840 + if self.initEnabled == DISABLED and enabled < 2:
8841 + if self.verify(_("Changing to SELinux enabled will cause a relabel of the entire file system on the next boot. Relabeling takes a long time depending on the size of the file system. Do you wish to continue?")) == gtk.RESPONSE_NO:
8842 + combo.set_active(self.enabled)
8844 + self.relabel_checkbutton.set_active(True)
8846 + self.write_selinux_config(modearray[enabled], type )
8847 + self.enabled = enabled
8849 + def write_selinux_config(self, enforcing, type):
8851 + commands.getstatusoutput("/usr/sbin/lokkit --selinuxtype=%s --selinux=%s" % (type, enforcing))
8853 + def read_selinux_config(self):
8854 + self.initialtype = selinux.selinux_getpolicytype()[1]
8855 + self.initEnabled = selinux.selinux_getenforcemode()[1]
8856 + self.enabled = self.initEnabled
8857 + self.enabledOptionMenu.set_active(self.enabled + 1 )
8864 + for i in os.listdir(SELINUXDIR):
8865 + if os.path.isdir(SELINUXDIR+i) and os.path.isdir(SELINUXDIR+i+"/policy"):
8866 + self.types.append(i)
8867 + self.selinuxTypeOptionMenu.append_text(i)
8868 + if i == self.initialtype:
8871 + self.selinuxTypeOptionMenu.set_active(current)
8872 + self.typeHistory = current
8876 + def get_type(self):
8877 + return self.types[self.selinuxTypeOptionMenu.get_active()]
8880 diff -up policycoreutils-2.1.8/gui/system-config-selinux.glade.gui policycoreutils-2.1.8/gui/system-config-selinux.glade
8881 --- policycoreutils-2.1.8/gui/system-config-selinux.glade.gui 2011-11-07 15:12:01.913834238 -0500
8882 +++ policycoreutils-2.1.8/gui/system-config-selinux.glade 2011-11-07 15:12:01.913834238 -0500
8884 +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
8885 +<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
8888 +<requires lib="gnome"/>
8889 +<requires lib="bonobo"/>
8891 +<widget class="GtkAboutDialog" id="aboutWindow">
8892 + <property name="border_width">5</property>
8893 + <property name="destroy_with_parent">False</property>
8894 + <property name="name" translatable="yes">system-config-selinux</property>
8895 + <property name="copyright" translatable="yes">Copyright (c)2006 Red Hat, Inc.
8896 +Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com></property>
8897 + <property name="wrap_license">False</property>
8898 + <property name="authors">Daniel Walsh <dwalsh@redhat.com>
8900 + <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">translator-credits</property>
8901 + <property name="logo">system-config-selinux.png</property>
8904 +<widget class="GtkDialog" id="loginsDialog">
8905 + <property name="title" translatable="yes">Add SELinux Login Mapping</property>
8906 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
8907 + <property name="window_position">GTK_WIN_POS_NONE</property>
8908 + <property name="modal">False</property>
8909 + <property name="resizable">True</property>
8910 + <property name="destroy_with_parent">False</property>
8911 + <property name="decorated">True</property>
8912 + <property name="skip_taskbar_hint">False</property>
8913 + <property name="skip_pager_hint">False</property>
8914 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
8915 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
8916 + <property name="focus_on_map">True</property>
8917 + <property name="urgency_hint">False</property>
8918 + <property name="has_separator">True</property>
8920 + <child internal-child="vbox">
8921 + <widget class="GtkVBox" id="dialog-vbox1">
8922 + <property name="visible">True</property>
8923 + <property name="homogeneous">False</property>
8924 + <property name="spacing">0</property>
8926 + <child internal-child="action_area">
8927 + <widget class="GtkHButtonBox" id="dialog-action_area1">
8928 + <property name="visible">True</property>
8929 + <property name="layout_style">GTK_BUTTONBOX_END</property>
8932 + <widget class="GtkButton" id="cancelbutton1">
8933 + <property name="visible">True</property>
8934 + <property name="can_default">True</property>
8935 + <property name="can_focus">True</property>
8936 + <property name="label">gtk-cancel</property>
8937 + <property name="use_stock">True</property>
8938 + <property name="relief">GTK_RELIEF_NORMAL</property>
8939 + <property name="focus_on_click">True</property>
8940 + <property name="response_id">-6</property>
8945 + <widget class="GtkButton" id="okbutton1">
8946 + <property name="visible">True</property>
8947 + <property name="can_default">True</property>
8948 + <property name="can_focus">True</property>
8949 + <property name="label">gtk-ok</property>
8950 + <property name="use_stock">True</property>
8951 + <property name="relief">GTK_RELIEF_NORMAL</property>
8952 + <property name="focus_on_click">True</property>
8953 + <property name="response_id">-5</property>
8958 + <property name="padding">0</property>
8959 + <property name="expand">False</property>
8960 + <property name="fill">True</property>
8961 + <property name="pack_type">GTK_PACK_END</property>
8966 + <widget class="GtkVBox" id="vbox2">
8967 + <property name="visible">True</property>
8968 + <property name="homogeneous">False</property>
8969 + <property name="spacing">0</property>
8972 + <widget class="GtkTable" id="table1">
8973 + <property name="visible">True</property>
8974 + <property name="n_rows">3</property>
8975 + <property name="n_columns">2</property>
8976 + <property name="homogeneous">False</property>
8977 + <property name="row_spacing">4</property>
8978 + <property name="column_spacing">6</property>
8981 + <widget class="GtkLabel" id="label15">
8982 + <property name="visible">True</property>
8983 + <property name="label" translatable="yes">Login Name</property>
8984 + <property name="use_underline">False</property>
8985 + <property name="use_markup">False</property>
8986 + <property name="justify">GTK_JUSTIFY_LEFT</property>
8987 + <property name="wrap">False</property>
8988 + <property name="selectable">False</property>
8989 + <property name="xalign">0</property>
8990 + <property name="yalign">0.5</property>
8991 + <property name="xpad">0</property>
8992 + <property name="ypad">0</property>
8993 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
8994 + <property name="width_chars">-1</property>
8995 + <property name="single_line_mode">False</property>
8996 + <property name="angle">0</property>
8999 + <property name="left_attach">0</property>
9000 + <property name="right_attach">1</property>
9001 + <property name="top_attach">0</property>
9002 + <property name="bottom_attach">1</property>
9003 + <property name="x_options">fill</property>
9004 + <property name="y_options"></property>
9009 + <widget class="GtkLabel" id="label16">
9010 + <property name="visible">True</property>
9011 + <property name="label" translatable="yes">SELinux User</property>
9012 + <property name="use_underline">False</property>
9013 + <property name="use_markup">False</property>
9014 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9015 + <property name="wrap">False</property>
9016 + <property name="selectable">False</property>
9017 + <property name="xalign">0</property>
9018 + <property name="yalign">0.5</property>
9019 + <property name="xpad">0</property>
9020 + <property name="ypad">0</property>
9021 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9022 + <property name="width_chars">-1</property>
9023 + <property name="single_line_mode">False</property>
9024 + <property name="angle">0</property>
9027 + <property name="left_attach">0</property>
9028 + <property name="right_attach">1</property>
9029 + <property name="top_attach">1</property>
9030 + <property name="bottom_attach">2</property>
9031 + <property name="x_options">fill</property>
9032 + <property name="y_options"></property>
9037 + <widget class="GtkLabel" id="label17">
9038 + <property name="visible">True</property>
9039 + <property name="label" translatable="yes">MLS/MCS Range</property>
9040 + <property name="use_underline">False</property>
9041 + <property name="use_markup">False</property>
9042 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9043 + <property name="wrap">False</property>
9044 + <property name="selectable">False</property>
9045 + <property name="xalign">0</property>
9046 + <property name="yalign">0.5</property>
9047 + <property name="xpad">0</property>
9048 + <property name="ypad">0</property>
9049 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9050 + <property name="width_chars">-1</property>
9051 + <property name="single_line_mode">False</property>
9052 + <property name="angle">0</property>
9055 + <property name="left_attach">0</property>
9056 + <property name="right_attach">1</property>
9057 + <property name="top_attach">2</property>
9058 + <property name="bottom_attach">3</property>
9059 + <property name="x_options">fill</property>
9060 + <property name="y_options"></property>
9065 + <widget class="GtkEntry" id="loginsNameEntry">
9066 + <property name="visible">True</property>
9067 + <property name="can_focus">True</property>
9068 + <property name="editable">True</property>
9069 + <property name="visibility">True</property>
9070 + <property name="max_length">0</property>
9071 + <property name="text" translatable="yes"></property>
9072 + <property name="has_frame">True</property>
9073 + <property name="invisible_char">*</property>
9074 + <property name="activates_default">False</property>
9077 + <property name="left_attach">1</property>
9078 + <property name="right_attach">2</property>
9079 + <property name="top_attach">0</property>
9080 + <property name="bottom_attach">1</property>
9081 + <property name="y_options"></property>
9086 + <widget class="GtkComboBox" id="loginsSelinuxUserCombo">
9087 + <property name="visible">True</property>
9088 + <property name="add_tearoffs">False</property>
9089 + <property name="focus_on_click">True</property>
9092 + <property name="left_attach">1</property>
9093 + <property name="right_attach">2</property>
9094 + <property name="top_attach">1</property>
9095 + <property name="bottom_attach">2</property>
9096 + <property name="x_options">fill</property>
9097 + <property name="y_options">fill</property>
9102 + <widget class="GtkEntry" id="loginsMLSEntry">
9103 + <property name="visible">True</property>
9104 + <property name="can_focus">True</property>
9105 + <property name="editable">True</property>
9106 + <property name="visibility">True</property>
9107 + <property name="max_length">0</property>
9108 + <property name="text" translatable="yes"></property>
9109 + <property name="has_frame">True</property>
9110 + <property name="invisible_char">*</property>
9111 + <property name="activates_default">False</property>
9114 + <property name="left_attach">1</property>
9115 + <property name="right_attach">2</property>
9116 + <property name="top_attach">2</property>
9117 + <property name="bottom_attach">3</property>
9118 + <property name="y_options"></property>
9123 + <property name="padding">5</property>
9124 + <property name="expand">True</property>
9125 + <property name="fill">True</property>
9130 + <property name="padding">0</property>
9131 + <property name="expand">True</property>
9132 + <property name="fill">True</property>
9139 +<widget class="GtkDialog" id="portsDialog">
9140 + <property name="title" translatable="yes">Add SELinux Network Ports</property>
9141 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
9142 + <property name="window_position">GTK_WIN_POS_NONE</property>
9143 + <property name="modal">False</property>
9144 + <property name="resizable">True</property>
9145 + <property name="destroy_with_parent">False</property>
9146 + <property name="decorated">True</property>
9147 + <property name="skip_taskbar_hint">False</property>
9148 + <property name="skip_pager_hint">False</property>
9149 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
9150 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
9151 + <property name="focus_on_map">True</property>
9152 + <property name="urgency_hint">False</property>
9153 + <property name="has_separator">True</property>
9155 + <child internal-child="vbox">
9156 + <widget class="GtkVBox" id="vbox3">
9157 + <property name="visible">True</property>
9158 + <property name="homogeneous">False</property>
9159 + <property name="spacing">0</property>
9161 + <child internal-child="action_area">
9162 + <widget class="GtkHButtonBox" id="hbuttonbox1">
9163 + <property name="visible">True</property>
9164 + <property name="layout_style">GTK_BUTTONBOX_END</property>
9167 + <widget class="GtkButton" id="button1">
9168 + <property name="visible">True</property>
9169 + <property name="can_default">True</property>
9170 + <property name="can_focus">True</property>
9171 + <property name="label">gtk-cancel</property>
9172 + <property name="use_stock">True</property>
9173 + <property name="relief">GTK_RELIEF_NORMAL</property>
9174 + <property name="focus_on_click">True</property>
9175 + <property name="response_id">-6</property>
9180 + <widget class="GtkButton" id="button2">
9181 + <property name="visible">True</property>
9182 + <property name="can_default">True</property>
9183 + <property name="can_focus">True</property>
9184 + <property name="label">gtk-ok</property>
9185 + <property name="use_stock">True</property>
9186 + <property name="relief">GTK_RELIEF_NORMAL</property>
9187 + <property name="focus_on_click">True</property>
9188 + <property name="response_id">-5</property>
9193 + <property name="padding">0</property>
9194 + <property name="expand">False</property>
9195 + <property name="fill">True</property>
9196 + <property name="pack_type">GTK_PACK_END</property>
9201 + <widget class="GtkVBox" id="vbox4">
9202 + <property name="visible">True</property>
9203 + <property name="homogeneous">False</property>
9204 + <property name="spacing">0</property>
9207 + <widget class="GtkTable" id="table2">
9208 + <property name="visible">True</property>
9209 + <property name="n_rows">4</property>
9210 + <property name="n_columns">2</property>
9211 + <property name="homogeneous">False</property>
9212 + <property name="row_spacing">4</property>
9213 + <property name="column_spacing">6</property>
9216 + <widget class="GtkLabel" id="label18">
9217 + <property name="visible">True</property>
9218 + <property name="label" translatable="yes">Port Number</property>
9219 + <property name="use_underline">False</property>
9220 + <property name="use_markup">False</property>
9221 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9222 + <property name="wrap">False</property>
9223 + <property name="selectable">False</property>
9224 + <property name="xalign">0</property>
9225 + <property name="yalign">0.5</property>
9226 + <property name="xpad">0</property>
9227 + <property name="ypad">0</property>
9228 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9229 + <property name="width_chars">-1</property>
9230 + <property name="single_line_mode">False</property>
9231 + <property name="angle">0</property>
9234 + <property name="left_attach">0</property>
9235 + <property name="right_attach">1</property>
9236 + <property name="top_attach">0</property>
9237 + <property name="bottom_attach">1</property>
9238 + <property name="x_options">fill</property>
9239 + <property name="y_options"></property>
9244 + <widget class="GtkLabel" id="label19">
9245 + <property name="visible">True</property>
9246 + <property name="label" translatable="yes">Protocol</property>
9247 + <property name="use_underline">False</property>
9248 + <property name="use_markup">False</property>
9249 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9250 + <property name="wrap">False</property>
9251 + <property name="selectable">False</property>
9252 + <property name="xalign">0</property>
9253 + <property name="yalign">0.5</property>
9254 + <property name="xpad">0</property>
9255 + <property name="ypad">0</property>
9256 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9257 + <property name="width_chars">-1</property>
9258 + <property name="single_line_mode">False</property>
9259 + <property name="angle">0</property>
9262 + <property name="left_attach">0</property>
9263 + <property name="right_attach">1</property>
9264 + <property name="top_attach">1</property>
9265 + <property name="bottom_attach">2</property>
9266 + <property name="x_options">fill</property>
9267 + <property name="y_options"></property>
9272 + <widget class="GtkLabel" id="label20">
9273 + <property name="visible">True</property>
9274 + <property name="label" translatable="yes">SELinux Type</property>
9275 + <property name="use_underline">False</property>
9276 + <property name="use_markup">False</property>
9277 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9278 + <property name="wrap">False</property>
9279 + <property name="selectable">False</property>
9280 + <property name="xalign">0</property>
9281 + <property name="yalign">0.5</property>
9282 + <property name="xpad">0</property>
9283 + <property name="ypad">0</property>
9284 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9285 + <property name="width_chars">-1</property>
9286 + <property name="single_line_mode">False</property>
9287 + <property name="angle">0</property>
9290 + <property name="left_attach">0</property>
9291 + <property name="right_attach">1</property>
9292 + <property name="top_attach">2</property>
9293 + <property name="bottom_attach">3</property>
9294 + <property name="x_options">fill</property>
9295 + <property name="y_options"></property>
9300 + <widget class="GtkEntry" id="portsNumberEntry">
9301 + <property name="visible">True</property>
9302 + <property name="can_focus">True</property>
9303 + <property name="editable">True</property>
9304 + <property name="visibility">True</property>
9305 + <property name="max_length">0</property>
9306 + <property name="text" translatable="yes"></property>
9307 + <property name="has_frame">True</property>
9308 + <property name="invisible_char">*</property>
9309 + <property name="activates_default">False</property>
9312 + <property name="left_attach">1</property>
9313 + <property name="right_attach">2</property>
9314 + <property name="top_attach">0</property>
9315 + <property name="bottom_attach">1</property>
9316 + <property name="y_options"></property>
9321 + <widget class="GtkComboBox" id="portsProtocolCombo">
9322 + <property name="visible">True</property>
9323 + <property name="items">tcp
9325 + <property name="add_tearoffs">False</property>
9326 + <property name="focus_on_click">True</property>
9329 + <property name="left_attach">1</property>
9330 + <property name="right_attach">2</property>
9331 + <property name="top_attach">1</property>
9332 + <property name="bottom_attach">2</property>
9333 + <property name="x_options">fill</property>
9334 + <property name="y_options">fill</property>
9339 + <widget class="GtkEntry" id="portsNameEntry">
9340 + <property name="visible">True</property>
9341 + <property name="can_focus">True</property>
9342 + <property name="editable">True</property>
9343 + <property name="visibility">True</property>
9344 + <property name="max_length">0</property>
9345 + <property name="text" translatable="yes"></property>
9346 + <property name="has_frame">True</property>
9347 + <property name="invisible_char">*</property>
9348 + <property name="activates_default">False</property>
9351 + <property name="left_attach">1</property>
9352 + <property name="right_attach">2</property>
9353 + <property name="top_attach">2</property>
9354 + <property name="bottom_attach">3</property>
9355 + <property name="y_options"></property>
9360 + <widget class="GtkLabel" id="label21">
9361 + <property name="visible">True</property>
9362 + <property name="label" translatable="yes">MLS/MCS
9364 + <property name="use_underline">False</property>
9365 + <property name="use_markup">False</property>
9366 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9367 + <property name="wrap">False</property>
9368 + <property name="selectable">False</property>
9369 + <property name="xalign">0</property>
9370 + <property name="yalign">0.5</property>
9371 + <property name="xpad">0</property>
9372 + <property name="ypad">0</property>
9373 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9374 + <property name="width_chars">-1</property>
9375 + <property name="single_line_mode">False</property>
9376 + <property name="angle">0</property>
9379 + <property name="left_attach">0</property>
9380 + <property name="right_attach">1</property>
9381 + <property name="top_attach">3</property>
9382 + <property name="bottom_attach">4</property>
9383 + <property name="x_options">fill</property>
9384 + <property name="y_options"></property>
9389 + <widget class="GtkEntry" id="portsMLSEntry">
9390 + <property name="visible">True</property>
9391 + <property name="can_focus">True</property>
9392 + <property name="editable">True</property>
9393 + <property name="visibility">True</property>
9394 + <property name="max_length">0</property>
9395 + <property name="text" translatable="yes"></property>
9396 + <property name="has_frame">True</property>
9397 + <property name="invisible_char">*</property>
9398 + <property name="activates_default">False</property>
9401 + <property name="left_attach">1</property>
9402 + <property name="right_attach">2</property>
9403 + <property name="top_attach">3</property>
9404 + <property name="bottom_attach">4</property>
9405 + <property name="y_options"></property>
9410 + <property name="padding">5</property>
9411 + <property name="expand">True</property>
9412 + <property name="fill">True</property>
9417 + <property name="padding">0</property>
9418 + <property name="expand">True</property>
9419 + <property name="fill">True</property>
9426 +<widget class="GtkDialog" id="fcontextDialog">
9427 + <property name="title" translatable="yes">Add SELinux Login Mapping</property>
9428 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
9429 + <property name="window_position">GTK_WIN_POS_NONE</property>
9430 + <property name="modal">False</property>
9431 + <property name="resizable">True</property>
9432 + <property name="destroy_with_parent">False</property>
9433 + <property name="decorated">True</property>
9434 + <property name="skip_taskbar_hint">False</property>
9435 + <property name="skip_pager_hint">False</property>
9436 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
9437 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
9438 + <property name="focus_on_map">True</property>
9439 + <property name="urgency_hint">False</property>
9440 + <property name="has_separator">True</property>
9442 + <child internal-child="vbox">
9443 + <widget class="GtkVBox" id="vbox7">
9444 + <property name="visible">True</property>
9445 + <property name="homogeneous">False</property>
9446 + <property name="spacing">0</property>
9448 + <child internal-child="action_area">
9449 + <widget class="GtkHButtonBox" id="hbuttonbox3">
9450 + <property name="visible">True</property>
9451 + <property name="layout_style">GTK_BUTTONBOX_END</property>
9454 + <widget class="GtkButton" id="button5">
9455 + <property name="visible">True</property>
9456 + <property name="can_default">True</property>
9457 + <property name="can_focus">True</property>
9458 + <property name="label">gtk-cancel</property>
9459 + <property name="use_stock">True</property>
9460 + <property name="relief">GTK_RELIEF_NORMAL</property>
9461 + <property name="focus_on_click">True</property>
9462 + <property name="response_id">-6</property>
9467 + <widget class="GtkButton" id="button6">
9468 + <property name="visible">True</property>
9469 + <property name="can_default">True</property>
9470 + <property name="can_focus">True</property>
9471 + <property name="label">gtk-ok</property>
9472 + <property name="use_stock">True</property>
9473 + <property name="relief">GTK_RELIEF_NORMAL</property>
9474 + <property name="focus_on_click">True</property>
9475 + <property name="response_id">-5</property>
9480 + <property name="padding">0</property>
9481 + <property name="expand">False</property>
9482 + <property name="fill">True</property>
9483 + <property name="pack_type">GTK_PACK_END</property>
9488 + <widget class="GtkVBox" id="vbox8">
9489 + <property name="visible">True</property>
9490 + <property name="homogeneous">False</property>
9491 + <property name="spacing">0</property>
9494 + <widget class="GtkTable" id="table4">
9495 + <property name="visible">True</property>
9496 + <property name="n_rows">4</property>
9497 + <property name="n_columns">2</property>
9498 + <property name="homogeneous">False</property>
9499 + <property name="row_spacing">4</property>
9500 + <property name="column_spacing">6</property>
9503 + <widget class="GtkLabel" id="label25">
9504 + <property name="visible">True</property>
9505 + <property name="label" translatable="yes">File Specification</property>
9506 + <property name="use_underline">False</property>
9507 + <property name="use_markup">False</property>
9508 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9509 + <property name="wrap">False</property>
9510 + <property name="selectable">False</property>
9511 + <property name="xalign">0</property>
9512 + <property name="yalign">0.5</property>
9513 + <property name="xpad">0</property>
9514 + <property name="ypad">0</property>
9515 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9516 + <property name="width_chars">-1</property>
9517 + <property name="single_line_mode">False</property>
9518 + <property name="angle">0</property>
9521 + <property name="left_attach">0</property>
9522 + <property name="right_attach">1</property>
9523 + <property name="top_attach">0</property>
9524 + <property name="bottom_attach">1</property>
9525 + <property name="x_options">fill</property>
9526 + <property name="y_options"></property>
9531 + <widget class="GtkLabel" id="label26">
9532 + <property name="visible">True</property>
9533 + <property name="label" translatable="yes">File Type</property>
9534 + <property name="use_underline">False</property>
9535 + <property name="use_markup">False</property>
9536 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9537 + <property name="wrap">False</property>
9538 + <property name="selectable">False</property>
9539 + <property name="xalign">0</property>
9540 + <property name="yalign">0.5</property>
9541 + <property name="xpad">0</property>
9542 + <property name="ypad">0</property>
9543 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9544 + <property name="width_chars">-1</property>
9545 + <property name="single_line_mode">False</property>
9546 + <property name="angle">0</property>
9549 + <property name="left_attach">0</property>
9550 + <property name="right_attach">1</property>
9551 + <property name="top_attach">1</property>
9552 + <property name="bottom_attach">2</property>
9553 + <property name="x_options">fill</property>
9554 + <property name="y_options"></property>
9559 + <widget class="GtkLabel" id="label27">
9560 + <property name="visible">True</property>
9561 + <property name="label" translatable="yes">SELinux Type</property>
9562 + <property name="use_underline">False</property>
9563 + <property name="use_markup">False</property>
9564 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9565 + <property name="wrap">False</property>
9566 + <property name="selectable">False</property>
9567 + <property name="xalign">0</property>
9568 + <property name="yalign">0.5</property>
9569 + <property name="xpad">0</property>
9570 + <property name="ypad">0</property>
9571 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9572 + <property name="width_chars">-1</property>
9573 + <property name="single_line_mode">False</property>
9574 + <property name="angle">0</property>
9577 + <property name="left_attach">0</property>
9578 + <property name="right_attach">1</property>
9579 + <property name="top_attach">2</property>
9580 + <property name="bottom_attach">3</property>
9581 + <property name="x_options">fill</property>
9582 + <property name="y_options"></property>
9587 + <widget class="GtkEntry" id="fcontextEntry">
9588 + <property name="visible">True</property>
9589 + <property name="can_focus">True</property>
9590 + <property name="editable">True</property>
9591 + <property name="visibility">True</property>
9592 + <property name="max_length">0</property>
9593 + <property name="text" translatable="yes"></property>
9594 + <property name="has_frame">True</property>
9595 + <property name="invisible_char">*</property>
9596 + <property name="activates_default">False</property>
9599 + <property name="left_attach">1</property>
9600 + <property name="right_attach">2</property>
9601 + <property name="top_attach">0</property>
9602 + <property name="bottom_attach">1</property>
9603 + <property name="y_options"></property>
9608 + <widget class="GtkComboBox" id="fcontextFileTypeCombo">
9609 + <property name="visible">True</property>
9610 + <property name="items" translatable="yes">all files
9619 + <property name="add_tearoffs">False</property>
9620 + <property name="focus_on_click">True</property>
9623 + <property name="left_attach">1</property>
9624 + <property name="right_attach">2</property>
9625 + <property name="top_attach">1</property>
9626 + <property name="bottom_attach">2</property>
9627 + <property name="x_options">fill</property>
9628 + <property name="y_options">fill</property>
9633 + <widget class="GtkEntry" id="fcontextTypeEntry">
9634 + <property name="visible">True</property>
9635 + <property name="can_focus">True</property>
9636 + <property name="editable">True</property>
9637 + <property name="visibility">True</property>
9638 + <property name="max_length">0</property>
9639 + <property name="text" translatable="yes"></property>
9640 + <property name="has_frame">True</property>
9641 + <property name="invisible_char">*</property>
9642 + <property name="activates_default">False</property>
9645 + <property name="left_attach">1</property>
9646 + <property name="right_attach">2</property>
9647 + <property name="top_attach">2</property>
9648 + <property name="bottom_attach">3</property>
9649 + <property name="y_options"></property>
9654 + <widget class="GtkLabel" id="label31">
9655 + <property name="visible">True</property>
9656 + <property name="label" translatable="yes">MLS</property>
9657 + <property name="use_underline">False</property>
9658 + <property name="use_markup">False</property>
9659 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9660 + <property name="wrap">False</property>
9661 + <property name="selectable">False</property>
9662 + <property name="xalign">0</property>
9663 + <property name="yalign">0.5</property>
9664 + <property name="xpad">0</property>
9665 + <property name="ypad">0</property>
9666 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9667 + <property name="width_chars">-1</property>
9668 + <property name="single_line_mode">False</property>
9669 + <property name="angle">0</property>
9672 + <property name="left_attach">0</property>
9673 + <property name="right_attach">1</property>
9674 + <property name="top_attach">3</property>
9675 + <property name="bottom_attach">4</property>
9676 + <property name="x_options">fill</property>
9677 + <property name="y_options"></property>
9682 + <widget class="GtkEntry" id="fcontextMLSEntry">
9683 + <property name="visible">True</property>
9684 + <property name="can_focus">True</property>
9685 + <property name="editable">True</property>
9686 + <property name="visibility">True</property>
9687 + <property name="max_length">0</property>
9688 + <property name="text" translatable="yes"></property>
9689 + <property name="has_frame">True</property>
9690 + <property name="invisible_char">*</property>
9691 + <property name="activates_default">False</property>
9694 + <property name="left_attach">1</property>
9695 + <property name="right_attach">2</property>
9696 + <property name="top_attach">3</property>
9697 + <property name="bottom_attach">4</property>
9698 + <property name="y_options"></property>
9703 + <property name="padding">5</property>
9704 + <property name="expand">True</property>
9705 + <property name="fill">True</property>
9710 + <property name="padding">0</property>
9711 + <property name="expand">True</property>
9712 + <property name="fill">True</property>
9719 +<widget class="GtkDialog" id="usersDialog">
9720 + <property name="title" translatable="yes">Add SELinux User</property>
9721 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
9722 + <property name="window_position">GTK_WIN_POS_NONE</property>
9723 + <property name="modal">False</property>
9724 + <property name="resizable">True</property>
9725 + <property name="destroy_with_parent">False</property>
9726 + <property name="decorated">True</property>
9727 + <property name="skip_taskbar_hint">False</property>
9728 + <property name="skip_pager_hint">False</property>
9729 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
9730 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
9731 + <property name="focus_on_map">True</property>
9732 + <property name="urgency_hint">False</property>
9733 + <property name="has_separator">True</property>
9735 + <child internal-child="vbox">
9736 + <widget class="GtkVBox" id="vbox9">
9737 + <property name="visible">True</property>
9738 + <property name="homogeneous">False</property>
9739 + <property name="spacing">0</property>
9741 + <child internal-child="action_area">
9742 + <widget class="GtkHButtonBox" id="hbuttonbox4">
9743 + <property name="visible">True</property>
9744 + <property name="layout_style">GTK_BUTTONBOX_END</property>
9747 + <widget class="GtkButton" id="button7">
9748 + <property name="visible">True</property>
9749 + <property name="can_default">True</property>
9750 + <property name="can_focus">True</property>
9751 + <property name="label">gtk-cancel</property>
9752 + <property name="use_stock">True</property>
9753 + <property name="relief">GTK_RELIEF_NORMAL</property>
9754 + <property name="focus_on_click">True</property>
9755 + <property name="response_id">-6</property>
9760 + <widget class="GtkButton" id="button8">
9761 + <property name="visible">True</property>
9762 + <property name="can_default">True</property>
9763 + <property name="can_focus">True</property>
9764 + <property name="label">gtk-ok</property>
9765 + <property name="use_stock">True</property>
9766 + <property name="relief">GTK_RELIEF_NORMAL</property>
9767 + <property name="focus_on_click">True</property>
9768 + <property name="response_id">-5</property>
9773 + <property name="padding">0</property>
9774 + <property name="expand">False</property>
9775 + <property name="fill">True</property>
9776 + <property name="pack_type">GTK_PACK_END</property>
9781 + <widget class="GtkVBox" id="vbox10">
9782 + <property name="visible">True</property>
9783 + <property name="homogeneous">False</property>
9784 + <property name="spacing">0</property>
9787 + <widget class="GtkTable" id="table5">
9788 + <property name="visible">True</property>
9789 + <property name="n_rows">3</property>
9790 + <property name="n_columns">2</property>
9791 + <property name="homogeneous">False</property>
9792 + <property name="row_spacing">4</property>
9793 + <property name="column_spacing">6</property>
9796 + <widget class="GtkLabel" id="label32">
9797 + <property name="visible">True</property>
9798 + <property name="label" translatable="yes">SELinux User</property>
9799 + <property name="use_underline">False</property>
9800 + <property name="use_markup">False</property>
9801 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9802 + <property name="wrap">False</property>
9803 + <property name="selectable">False</property>
9804 + <property name="xalign">0</property>
9805 + <property name="yalign">0.5</property>
9806 + <property name="xpad">0</property>
9807 + <property name="ypad">0</property>
9808 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9809 + <property name="width_chars">-1</property>
9810 + <property name="single_line_mode">False</property>
9811 + <property name="angle">0</property>
9814 + <property name="left_attach">0</property>
9815 + <property name="right_attach">1</property>
9816 + <property name="top_attach">0</property>
9817 + <property name="bottom_attach">1</property>
9818 + <property name="x_options">fill</property>
9819 + <property name="y_options"></property>
9824 + <widget class="GtkLabel" id="label34">
9825 + <property name="visible">True</property>
9826 + <property name="label" translatable="yes">MLS/MCS Range</property>
9827 + <property name="use_underline">False</property>
9828 + <property name="use_markup">False</property>
9829 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9830 + <property name="wrap">False</property>
9831 + <property name="selectable">False</property>
9832 + <property name="xalign">0</property>
9833 + <property name="yalign">0.5</property>
9834 + <property name="xpad">0</property>
9835 + <property name="ypad">0</property>
9836 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9837 + <property name="width_chars">-1</property>
9838 + <property name="single_line_mode">False</property>
9839 + <property name="angle">0</property>
9842 + <property name="left_attach">0</property>
9843 + <property name="right_attach">1</property>
9844 + <property name="top_attach">1</property>
9845 + <property name="bottom_attach">2</property>
9846 + <property name="x_options">fill</property>
9847 + <property name="y_options"></property>
9852 + <widget class="GtkEntry" id="mlsRangeEntry">
9853 + <property name="visible">True</property>
9854 + <property name="can_focus">True</property>
9855 + <property name="editable">True</property>
9856 + <property name="visibility">True</property>
9857 + <property name="max_length">0</property>
9858 + <property name="text" translatable="yes"></property>
9859 + <property name="has_frame">True</property>
9860 + <property name="invisible_char">*</property>
9861 + <property name="activates_default">False</property>
9864 + <property name="left_attach">1</property>
9865 + <property name="right_attach">2</property>
9866 + <property name="top_attach">1</property>
9867 + <property name="bottom_attach">2</property>
9868 + <property name="y_options"></property>
9873 + <widget class="GtkLabel" id="label36">
9874 + <property name="visible">True</property>
9875 + <property name="label" translatable="yes">SELinux Roles</property>
9876 + <property name="use_underline">False</property>
9877 + <property name="use_markup">False</property>
9878 + <property name="justify">GTK_JUSTIFY_LEFT</property>
9879 + <property name="wrap">False</property>
9880 + <property name="selectable">False</property>
9881 + <property name="xalign">0</property>
9882 + <property name="yalign">0.5</property>
9883 + <property name="xpad">0</property>
9884 + <property name="ypad">0</property>
9885 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
9886 + <property name="width_chars">-1</property>
9887 + <property name="single_line_mode">False</property>
9888 + <property name="angle">0</property>
9891 + <property name="left_attach">0</property>
9892 + <property name="right_attach">1</property>
9893 + <property name="top_attach">2</property>
9894 + <property name="bottom_attach">3</property>
9895 + <property name="x_options">fill</property>
9896 + <property name="y_options"></property>
9901 + <widget class="GtkEntry" id="selinuxRolesEntry">
9902 + <property name="visible">True</property>
9903 + <property name="can_focus">True</property>
9904 + <property name="editable">True</property>
9905 + <property name="visibility">True</property>
9906 + <property name="max_length">0</property>
9907 + <property name="text" translatable="yes"></property>
9908 + <property name="has_frame">True</property>
9909 + <property name="invisible_char">*</property>
9910 + <property name="activates_default">False</property>
9913 + <property name="left_attach">1</property>
9914 + <property name="right_attach">2</property>
9915 + <property name="top_attach">2</property>
9916 + <property name="bottom_attach">3</property>
9917 + <property name="y_options"></property>
9922 + <widget class="GtkEntry" id="selinuxUserEntry">
9923 + <property name="visible">True</property>
9924 + <property name="can_focus">True</property>
9925 + <property name="editable">True</property>
9926 + <property name="visibility">True</property>
9927 + <property name="max_length">0</property>
9928 + <property name="text" translatable="yes"></property>
9929 + <property name="has_frame">True</property>
9930 + <property name="invisible_char">*</property>
9931 + <property name="activates_default">False</property>
9934 + <property name="left_attach">1</property>
9935 + <property name="right_attach">2</property>
9936 + <property name="top_attach">0</property>
9937 + <property name="bottom_attach">1</property>
9938 + <property name="y_options"></property>
9943 + <property name="padding">5</property>
9944 + <property name="expand">True</property>
9945 + <property name="fill">True</property>
9950 + <property name="padding">0</property>
9951 + <property name="expand">True</property>
9952 + <property name="fill">True</property>
9959 +<widget class="GnomeApp" id="mainWindow">
9960 + <property name="width_request">800</property>
9961 + <property name="height_request">500</property>
9962 + <property name="title" translatable="yes">SELinux Administration</property>
9963 + <property name="type">GTK_WINDOW_TOPLEVEL</property>
9964 + <property name="window_position">GTK_WIN_POS_NONE</property>
9965 + <property name="modal">False</property>
9966 + <property name="resizable">True</property>
9967 + <property name="destroy_with_parent">False</property>
9968 + <property name="icon">system-config-selinux.png</property>
9969 + <property name="decorated">True</property>
9970 + <property name="skip_taskbar_hint">False</property>
9971 + <property name="skip_pager_hint">False</property>
9972 + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
9973 + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
9974 + <property name="focus_on_map">True</property>
9975 + <property name="urgency_hint">False</property>
9976 + <property name="enable_layout_config">True</property>
9978 + <child internal-child="dock">
9979 + <widget class="BonoboDock" id="bonobodock2">
9980 + <property name="visible">True</property>
9981 + <property name="allow_floating">True</property>
9984 + <widget class="BonoboDockItem" id="bonobodockitem3">
9985 + <property name="visible">True</property>
9986 + <property name="shadow_type">GTK_SHADOW_NONE</property>
9989 + <widget class="GtkMenuBar" id="menubar1">
9990 + <property name="visible">True</property>
9991 + <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
9992 + <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
9995 + <widget class="GtkMenuItem" id="file1">
9996 + <property name="visible">True</property>
9997 + <property name="stock_item">GNOMEUIINFO_MENU_FILE_TREE</property>
10000 + <widget class="GtkMenu" id="file1_menu">
10003 + <widget class="GtkImageMenuItem" id="add_menu_item">
10004 + <property name="visible">True</property>
10005 + <property name="label" translatable="yes">Add</property>
10006 + <property name="use_underline">True</property>
10007 + <signal name="activate" handler="on_add_clicked" last_modification_time="Sat, 17 Mar 2007 12:21:12 GMT"/>
10008 + <accelerator key="a" modifiers="GDK_CONTROL_MASK" signal="activate"/>
10010 + <child internal-child="image">
10011 + <widget class="GtkImage" id="image13">
10012 + <property name="visible">True</property>
10013 + <property name="stock">gtk-add</property>
10014 + <property name="icon_size">1</property>
10015 + <property name="xalign">0.5</property>
10016 + <property name="yalign">0.5</property>
10017 + <property name="xpad">0</property>
10018 + <property name="ypad">0</property>
10025 + <widget class="GtkImageMenuItem" id="properties_menu_item">
10026 + <property name="visible">True</property>
10027 + <property name="label" translatable="yes">_Properties</property>
10028 + <property name="use_underline">True</property>
10029 + <signal name="activate" handler="on_properties_clicked" last_modification_time="Sat, 17 Mar 2007 12:21:12 GMT"/>
10030 + <accelerator key="p" modifiers="GDK_CONTROL_MASK" signal="activate"/>
10032 + <child internal-child="image">
10033 + <widget class="GtkImage" id="image14">
10034 + <property name="visible">True</property>
10035 + <property name="stock">gtk-properties</property>
10036 + <property name="icon_size">1</property>
10037 + <property name="xalign">0.5</property>
10038 + <property name="yalign">0.5</property>
10039 + <property name="xpad">0</property>
10040 + <property name="ypad">0</property>
10047 + <widget class="GtkImageMenuItem" id="delete_menu_item">
10048 + <property name="visible">True</property>
10049 + <property name="label" translatable="yes">_Delete</property>
10050 + <property name="use_underline">True</property>
10051 + <signal name="activate" handler="on_delete_clicked" last_modification_time="Sat, 17 Mar 2007 12:21:12 GMT"/>
10052 + <accelerator key="Delete" modifiers="0" signal="activate"/>
10054 + <child internal-child="image">
10055 + <widget class="GtkImage" id="image15">
10056 + <property name="visible">True</property>
10057 + <property name="stock">gtk-delete</property>
10058 + <property name="icon_size">1</property>
10059 + <property name="xalign">0.5</property>
10060 + <property name="yalign">0.5</property>
10061 + <property name="xpad">0</property>
10062 + <property name="ypad">0</property>
10069 + <widget class="GtkImageMenuItem" id="quit">
10070 + <property name="visible">True</property>
10071 + <property name="stock_item">GNOMEUIINFO_MENU_EXIT_ITEM</property>
10072 + <signal name="activate" handler="on_quit_activate" last_modification_time="Fri, 06 Oct 2006 13:58:19 GMT"/>
10081 + <widget class="GtkMenuItem" id="help1">
10082 + <property name="visible">True</property>
10083 + <property name="stock_item">GNOMEUIINFO_MENU_HELP_TREE</property>
10086 + <widget class="GtkMenu" id="help1_menu">
10089 + <widget class="GtkImageMenuItem" id="about">
10090 + <property name="visible">True</property>
10091 + <property name="stock_item">GNOMEUIINFO_MENU_ABOUT_ITEM</property>
10092 + <signal name="activate" handler="on_about_activate" last_modification_time="Fri, 06 Oct 2006 13:58:02 GMT"/>
10103 + <property name="placement">BONOBO_DOCK_TOP</property>
10104 + <property name="band">0</property>
10105 + <property name="position">0</property>
10106 + <property name="offset">0</property>
10107 + <property name="behavior">BONOBO_DOCK_ITEM_BEH_EXCLUSIVE|BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL|BONOBO_DOCK_ITEM_BEH_LOCKED</property>
10112 + <widget class="GtkHPaned" id="hpaned1">
10113 + <property name="visible">True</property>
10114 + <property name="can_focus">True</property>
10115 + <property name="position">0</property>
10118 + <widget class="GtkFrame" id="frame1">
10119 + <property name="border_width">5</property>
10120 + <property name="visible">True</property>
10121 + <property name="label_xalign">0</property>
10122 + <property name="label_yalign">0.5</property>
10123 + <property name="shadow_type">GTK_SHADOW_NONE</property>
10126 + <widget class="GtkAlignment" id="alignment1">
10127 + <property name="visible">True</property>
10128 + <property name="xalign">0.5</property>
10129 + <property name="yalign">0.5</property>
10130 + <property name="xscale">1</property>
10131 + <property name="yscale">1</property>
10132 + <property name="top_padding">0</property>
10133 + <property name="bottom_padding">0</property>
10134 + <property name="left_padding">12</property>
10135 + <property name="right_padding">0</property>
10138 + <widget class="GtkTreeView" id="selectView">
10139 + <property name="visible">True</property>
10140 + <property name="tooltip" translatable="yes">Select Management Object</property>
10141 + <property name="can_focus">True</property>
10142 + <property name="headers_visible">False</property>
10143 + <property name="rules_hint">False</property>
10144 + <property name="reorderable">False</property>
10145 + <property name="enable_search">True</property>
10146 + <property name="fixed_height_mode">False</property>
10147 + <property name="hover_selection">False</property>
10148 + <property name="hover_expand">False</property>
10155 + <widget class="GtkLabel" id="label45">
10156 + <property name="visible">True</property>
10157 + <property name="label" translatable="yes"><b>Select:</b></property>
10158 + <property name="use_underline">False</property>
10159 + <property name="use_markup">True</property>
10160 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10161 + <property name="wrap">False</property>
10162 + <property name="selectable">False</property>
10163 + <property name="xalign">0.5</property>
10164 + <property name="yalign">0.5</property>
10165 + <property name="xpad">0</property>
10166 + <property name="ypad">0</property>
10167 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10168 + <property name="width_chars">-1</property>
10169 + <property name="single_line_mode">False</property>
10170 + <property name="angle">0</property>
10173 + <property name="type">label_item</property>
10178 + <property name="shrink">False</property>
10179 + <property name="resize">True</property>
10184 + <widget class="GtkNotebook" id="notebook">
10185 + <property name="visible">True</property>
10186 + <property name="show_tabs">False</property>
10187 + <property name="show_border">True</property>
10188 + <property name="tab_pos">GTK_POS_TOP</property>
10189 + <property name="scrollable">False</property>
10190 + <property name="enable_popup">False</property>
10193 + <widget class="GtkVBox" id="vbox1">
10194 + <property name="visible">True</property>
10195 + <property name="homogeneous">False</property>
10196 + <property name="spacing">0</property>
10199 + <widget class="GtkTable" id="table6">
10200 + <property name="visible">True</property>
10201 + <property name="n_rows">4</property>
10202 + <property name="n_columns">2</property>
10203 + <property name="homogeneous">False</property>
10204 + <property name="row_spacing">5</property>
10205 + <property name="column_spacing">5</property>
10208 + <widget class="GtkLabel" id="label29">
10209 + <property name="visible">True</property>
10210 + <property name="label" translatable="yes">System Default Enforcing Mode</property>
10211 + <property name="use_underline">False</property>
10212 + <property name="use_markup">False</property>
10213 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10214 + <property name="wrap">False</property>
10215 + <property name="selectable">False</property>
10216 + <property name="xalign">0.5</property>
10217 + <property name="yalign">0.5</property>
10218 + <property name="xpad">0</property>
10219 + <property name="ypad">0</property>
10220 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10221 + <property name="width_chars">-1</property>
10222 + <property name="single_line_mode">False</property>
10223 + <property name="angle">0</property>
10226 + <property name="left_attach">0</property>
10227 + <property name="right_attach">1</property>
10228 + <property name="top_attach">0</property>
10229 + <property name="bottom_attach">1</property>
10230 + <property name="x_options">fill</property>
10231 + <property name="y_options"></property>
10236 + <widget class="GtkComboBox" id="enabledOptionMenu">
10237 + <property name="visible">True</property>
10238 + <property name="items" translatable="yes">Disabled
10242 + <property name="add_tearoffs">False</property>
10243 + <property name="focus_on_click">True</property>
10246 + <property name="left_attach">1</property>
10247 + <property name="right_attach">2</property>
10248 + <property name="top_attach">0</property>
10249 + <property name="bottom_attach">1</property>
10250 + <property name="y_options">fill</property>
10255 + <widget class="GtkLabel" id="label48">
10256 + <property name="visible">True</property>
10257 + <property name="label" translatable="yes">Current Enforcing Mode</property>
10258 + <property name="use_underline">False</property>
10259 + <property name="use_markup">False</property>
10260 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10261 + <property name="wrap">False</property>
10262 + <property name="selectable">False</property>
10263 + <property name="xalign">0.5</property>
10264 + <property name="yalign">0.5</property>
10265 + <property name="xpad">0</property>
10266 + <property name="ypad">0</property>
10267 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10268 + <property name="width_chars">-1</property>
10269 + <property name="single_line_mode">False</property>
10270 + <property name="angle">0</property>
10273 + <property name="left_attach">0</property>
10274 + <property name="right_attach">1</property>
10275 + <property name="top_attach">1</property>
10276 + <property name="bottom_attach">2</property>
10277 + <property name="x_options">fill</property>
10278 + <property name="y_options"></property>
10283 + <widget class="GtkComboBox" id="currentOptionMenu">
10284 + <property name="visible">True</property>
10285 + <property name="items" translatable="yes"></property>
10286 + <property name="add_tearoffs">False</property>
10287 + <property name="focus_on_click">True</property>
10290 + <property name="left_attach">1</property>
10291 + <property name="right_attach">2</property>
10292 + <property name="top_attach">1</property>
10293 + <property name="bottom_attach">2</property>
10294 + <property name="x_options">fill</property>
10295 + <property name="y_options">fill</property>
10300 + <widget class="GtkLabel" id="typeLabel">
10301 + <property name="visible">True</property>
10302 + <property name="label" translatable="yes">System Default Policy Type: </property>
10303 + <property name="use_underline">False</property>
10304 + <property name="use_markup">False</property>
10305 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10306 + <property name="wrap">False</property>
10307 + <property name="selectable">False</property>
10308 + <property name="xalign">0.5</property>
10309 + <property name="yalign">0.5</property>
10310 + <property name="xpad">0</property>
10311 + <property name="ypad">0</property>
10312 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10313 + <property name="width_chars">-1</property>
10314 + <property name="single_line_mode">False</property>
10315 + <property name="angle">0</property>
10318 + <property name="left_attach">0</property>
10319 + <property name="right_attach">1</property>
10320 + <property name="top_attach">2</property>
10321 + <property name="bottom_attach">3</property>
10322 + <property name="x_options">fill</property>
10323 + <property name="y_options"></property>
10328 + <widget class="GtkComboBox" id="selinuxTypeOptionMenu">
10329 + <property name="visible">True</property>
10330 + <property name="items" translatable="yes"></property>
10331 + <property name="add_tearoffs">False</property>
10332 + <property name="focus_on_click">True</property>
10335 + <property name="left_attach">1</property>
10336 + <property name="right_attach">2</property>
10337 + <property name="top_attach">2</property>
10338 + <property name="bottom_attach">3</property>
10339 + <property name="x_options">fill</property>
10340 + <property name="y_options">fill</property>
10345 + <widget class="GtkCheckButton" id="relabelCheckbutton">
10346 + <property name="visible">True</property>
10347 + <property name="tooltip" translatable="yes">Select if you wish to relabel then entire file system on next reboot. Relabeling can take a very long time, depending on the size of the system. If you are changing policy types or going from disabled to enforcing, a relabel is required.</property>
10348 + <property name="can_focus">True</property>
10349 + <property name="relief">GTK_RELIEF_NORMAL</property>
10350 + <property name="focus_on_click">True</property>
10351 + <property name="active">False</property>
10352 + <property name="inconsistent">False</property>
10353 + <property name="draw_indicator">True</property>
10356 + <widget class="GtkAlignment" id="alignment4">
10357 + <property name="visible">True</property>
10358 + <property name="xalign">0.5</property>
10359 + <property name="yalign">0.5</property>
10360 + <property name="xscale">0</property>
10361 + <property name="yscale">0</property>
10362 + <property name="top_padding">0</property>
10363 + <property name="bottom_padding">0</property>
10364 + <property name="left_padding">0</property>
10365 + <property name="right_padding">0</property>
10368 + <widget class="GtkHBox" id="hbox6">
10369 + <property name="visible">True</property>
10370 + <property name="homogeneous">False</property>
10371 + <property name="spacing">2</property>
10374 + <widget class="GtkImage" id="image2">
10375 + <property name="visible">True</property>
10376 + <property name="stock">gtk-refresh</property>
10377 + <property name="icon_size">4</property>
10378 + <property name="xalign">0.5</property>
10379 + <property name="yalign">0.5</property>
10380 + <property name="xpad">0</property>
10381 + <property name="ypad">0</property>
10384 + <property name="padding">0</property>
10385 + <property name="expand">False</property>
10386 + <property name="fill">False</property>
10391 + <widget class="GtkLabel" id="label49">
10392 + <property name="visible">True</property>
10393 + <property name="label" translatable="yes">Relabel on next reboot.</property>
10394 + <property name="use_underline">True</property>
10395 + <property name="use_markup">False</property>
10396 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10397 + <property name="wrap">False</property>
10398 + <property name="selectable">False</property>
10399 + <property name="xalign">0.5</property>
10400 + <property name="yalign">0.5</property>
10401 + <property name="xpad">0</property>
10402 + <property name="ypad">0</property>
10403 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10404 + <property name="width_chars">-1</property>
10405 + <property name="single_line_mode">False</property>
10406 + <property name="angle">0</property>
10409 + <property name="padding">0</property>
10410 + <property name="expand">False</property>
10411 + <property name="fill">False</property>
10420 + <property name="left_attach">0</property>
10421 + <property name="right_attach">2</property>
10422 + <property name="top_attach">3</property>
10423 + <property name="bottom_attach">4</property>
10424 + <property name="x_options">fill</property>
10425 + <property name="y_options">fill</property>
10430 + <property name="padding">0</property>
10431 + <property name="expand">True</property>
10432 + <property name="fill">True</property>
10437 + <property name="tab_expand">False</property>
10438 + <property name="tab_fill">True</property>
10443 + <widget class="GtkLabel" id="label37">
10444 + <property name="visible">True</property>
10445 + <property name="label" translatable="yes">label37</property>
10446 + <property name="use_underline">False</property>
10447 + <property name="use_markup">False</property>
10448 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10449 + <property name="wrap">False</property>
10450 + <property name="selectable">False</property>
10451 + <property name="xalign">0.5</property>
10452 + <property name="yalign">0.5</property>
10453 + <property name="xpad">0</property>
10454 + <property name="ypad">0</property>
10455 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10456 + <property name="width_chars">-1</property>
10457 + <property name="single_line_mode">False</property>
10458 + <property name="angle">0</property>
10461 + <property name="type">tab</property>
10466 + <widget class="GtkVBox" id="vbox18">
10467 + <property name="visible">True</property>
10468 + <property name="homogeneous">False</property>
10469 + <property name="spacing">0</property>
10472 + <widget class="GtkToolbar" id="toolbar9">
10473 + <property name="visible">True</property>
10474 + <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
10475 + <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
10476 + <property name="tooltips">True</property>
10477 + <property name="show_arrow">True</property>
10480 + <widget class="GtkToolButton" id="booleanRevertButton">
10481 + <property name="visible">True</property>
10482 + <property name="tooltip" translatable="yes">Revert boolean setting to system default</property>
10483 + <property name="stock_id">gtk-revert-to-saved</property>
10484 + <property name="visible_horizontal">True</property>
10485 + <property name="visible_vertical">True</property>
10486 + <property name="is_important">False</property>
10487 + <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
10490 + <property name="expand">False</property>
10491 + <property name="homogeneous">True</property>
10496 + <widget class="GtkToolButton" id="toolbutton34">
10497 + <property name="visible">True</property>
10498 + <property name="tooltip" translatable="yes">Toggle between Customized and All Booleans</property>
10499 + <property name="label" translatable="yes">Customized</property>
10500 + <property name="use_underline">True</property>
10501 + <property name="stock_id">gtk-find</property>
10502 + <property name="visible_horizontal">True</property>
10503 + <property name="visible_vertical">True</property>
10504 + <property name="is_important">False</property>
10505 + <signal name="clicked" handler="on_local_clicked" last_modification_time="Wed, 19 Sep 2007 19:14:08 GMT"/>
10508 + <property name="expand">False</property>
10509 + <property name="homogeneous">True</property>
10514 + <widget class="GtkToolButton" id="toolbutton36">
10515 + <property name="visible">True</property>
10516 + <property name="tooltip" translatable="yes">Run booleans lockdown wizard</property>
10517 + <property name="label" translatable="yes">Lockdown...</property>
10518 + <property name="use_underline">True</property>
10519 + <property name="stock_id">gtk-print-error</property>
10520 + <property name="visible_horizontal">True</property>
10521 + <property name="visible_vertical">True</property>
10522 + <property name="is_important">False</property>
10523 + <signal name="clicked" handler="on_lockdown_clicked" last_modification_time="Thu, 03 Jul 2008 16:51:17 GMT"/>
10526 + <property name="expand">False</property>
10527 + <property name="homogeneous">True</property>
10532 + <property name="padding">0</property>
10533 + <property name="expand">False</property>
10534 + <property name="fill">False</property>
10539 + <widget class="GtkHBox" id="hbox7">
10540 + <property name="visible">True</property>
10541 + <property name="homogeneous">False</property>
10542 + <property name="spacing">0</property>
10545 + <widget class="GtkLabel" id="label51">
10546 + <property name="visible">True</property>
10547 + <property name="label" translatable="yes">Filter</property>
10548 + <property name="use_underline">False</property>
10549 + <property name="use_markup">False</property>
10550 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10551 + <property name="wrap">False</property>
10552 + <property name="selectable">False</property>
10553 + <property name="xalign">0.5</property>
10554 + <property name="yalign">0.5</property>
10555 + <property name="xpad">0</property>
10556 + <property name="ypad">0</property>
10557 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10558 + <property name="width_chars">-1</property>
10559 + <property name="single_line_mode">False</property>
10560 + <property name="angle">0</property>
10563 + <property name="padding">10</property>
10564 + <property name="expand">False</property>
10565 + <property name="fill">False</property>
10570 + <widget class="GtkEntry" id="booleansFilter">
10571 + <property name="visible">True</property>
10572 + <property name="can_focus">True</property>
10573 + <property name="editable">True</property>
10574 + <property name="visibility">True</property>
10575 + <property name="max_length">0</property>
10576 + <property name="text" translatable="yes"></property>
10577 + <property name="has_frame">True</property>
10578 + <property name="invisible_char">•</property>
10579 + <property name="activates_default">False</property>
10580 + <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
10583 + <property name="padding">0</property>
10584 + <property name="expand">True</property>
10585 + <property name="fill">True</property>
10590 + <property name="padding">10</property>
10591 + <property name="expand">False</property>
10592 + <property name="fill">True</property>
10597 + <widget class="GtkScrolledWindow" id="scrolledwindow18">
10598 + <property name="visible">True</property>
10599 + <property name="can_focus">True</property>
10600 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
10601 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
10602 + <property name="shadow_type">GTK_SHADOW_NONE</property>
10603 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
10606 + <widget class="GtkTreeView" id="booleansView">
10607 + <property name="visible">True</property>
10608 + <property name="tooltip" translatable="yes">Boolean</property>
10609 + <property name="can_focus">True</property>
10610 + <property name="headers_visible">True</property>
10611 + <property name="rules_hint">False</property>
10612 + <property name="reorderable">False</property>
10613 + <property name="enable_search">True</property>
10614 + <property name="fixed_height_mode">False</property>
10615 + <property name="hover_selection">False</property>
10616 + <property name="hover_expand">False</property>
10621 + <property name="padding">0</property>
10622 + <property name="expand">True</property>
10623 + <property name="fill">True</property>
10628 + <property name="tab_expand">False</property>
10629 + <property name="tab_fill">True</property>
10634 + <widget class="GtkLabel" id="label50">
10635 + <property name="visible">True</property>
10636 + <property name="label" translatable="yes">label50</property>
10637 + <property name="use_underline">False</property>
10638 + <property name="use_markup">False</property>
10639 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10640 + <property name="wrap">False</property>
10641 + <property name="selectable">False</property>
10642 + <property name="xalign">0.5</property>
10643 + <property name="yalign">0.5</property>
10644 + <property name="xpad">0</property>
10645 + <property name="ypad">0</property>
10646 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10647 + <property name="width_chars">-1</property>
10648 + <property name="single_line_mode">False</property>
10649 + <property name="angle">0</property>
10652 + <property name="type">tab</property>
10657 + <widget class="GtkVBox" id="vbox11">
10658 + <property name="visible">True</property>
10659 + <property name="homogeneous">False</property>
10660 + <property name="spacing">0</property>
10663 + <widget class="GtkToolbar" id="toolbar2">
10664 + <property name="visible">True</property>
10665 + <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
10666 + <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
10667 + <property name="tooltips">True</property>
10668 + <property name="show_arrow">True</property>
10671 + <widget class="GtkToolButton" id="toolbutton5">
10672 + <property name="visible">True</property>
10673 + <property name="tooltip" translatable="yes">Add File Context</property>
10674 + <property name="stock_id">gtk-add</property>
10675 + <property name="visible_horizontal">True</property>
10676 + <property name="visible_vertical">True</property>
10677 + <property name="is_important">False</property>
10678 + <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
10681 + <property name="expand">False</property>
10682 + <property name="homogeneous">True</property>
10687 + <widget class="GtkToolButton" id="toolbutton6">
10688 + <property name="visible">True</property>
10689 + <property name="tooltip" translatable="yes">Modify File Context</property>
10690 + <property name="stock_id">gtk-properties</property>
10691 + <property name="visible_horizontal">True</property>
10692 + <property name="visible_vertical">True</property>
10693 + <property name="is_important">False</property>
10694 + <signal name="clicked" handler="on_properties_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:51 GMT"/>
10697 + <property name="expand">False</property>
10698 + <property name="homogeneous">True</property>
10703 + <widget class="GtkToolButton" id="toolbutton7">
10704 + <property name="visible">True</property>
10705 + <property name="tooltip" translatable="yes">Delete File Context</property>
10706 + <property name="stock_id">gtk-delete</property>
10707 + <property name="visible_horizontal">True</property>
10708 + <property name="visible_vertical">True</property>
10709 + <property name="is_important">False</property>
10710 + <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
10713 + <property name="expand">False</property>
10714 + <property name="homogeneous">True</property>
10719 + <widget class="GtkToolButton" id="customizedButton">
10720 + <property name="visible">True</property>
10721 + <property name="tooltip" translatable="yes">Toggle between all and customized file context</property>
10722 + <property name="label" translatable="yes">Customized</property>
10723 + <property name="use_underline">True</property>
10724 + <property name="stock_id">gtk-find</property>
10725 + <property name="visible_horizontal">True</property>
10726 + <property name="visible_vertical">True</property>
10727 + <property name="is_important">False</property>
10728 + <signal name="clicked" handler="on_local_clicked" last_modification_time="Wed, 19 Sep 2007 19:14:08 GMT"/>
10731 + <property name="expand">False</property>
10732 + <property name="homogeneous">True</property>
10737 + <property name="padding">0</property>
10738 + <property name="expand">False</property>
10739 + <property name="fill">False</property>
10744 + <widget class="GtkHBox" id="hbox14">
10745 + <property name="visible">True</property>
10746 + <property name="homogeneous">False</property>
10747 + <property name="spacing">0</property>
10750 + <widget class="GtkLabel" id="label58">
10751 + <property name="visible">True</property>
10752 + <property name="label" translatable="yes">Filter</property>
10753 + <property name="use_underline">False</property>
10754 + <property name="use_markup">False</property>
10755 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10756 + <property name="wrap">False</property>
10757 + <property name="selectable">False</property>
10758 + <property name="xalign">0.5</property>
10759 + <property name="yalign">0.5</property>
10760 + <property name="xpad">0</property>
10761 + <property name="ypad">0</property>
10762 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10763 + <property name="width_chars">-1</property>
10764 + <property name="single_line_mode">False</property>
10765 + <property name="angle">0</property>
10768 + <property name="padding">10</property>
10769 + <property name="expand">False</property>
10770 + <property name="fill">False</property>
10775 + <widget class="GtkEntry" id="fcontextFilterEntry">
10776 + <property name="visible">True</property>
10777 + <property name="can_focus">True</property>
10778 + <property name="editable">True</property>
10779 + <property name="visibility">True</property>
10780 + <property name="max_length">0</property>
10781 + <property name="text" translatable="yes"></property>
10782 + <property name="has_frame">True</property>
10783 + <property name="invisible_char">•</property>
10784 + <property name="activates_default">False</property>
10785 + <signal name="changed" handler="on_fcontextFilter_changed" last_modification_time="Mon, 05 Nov 2007 21:22:11 GMT"/>
10788 + <property name="padding">0</property>
10789 + <property name="expand">True</property>
10790 + <property name="fill">True</property>
10795 + <property name="padding">0</property>
10796 + <property name="expand">False</property>
10797 + <property name="fill">False</property>
10802 + <widget class="GtkScrolledWindow" id="scrolledwindow19">
10803 + <property name="visible">True</property>
10804 + <property name="can_focus">True</property>
10805 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
10806 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
10807 + <property name="shadow_type">GTK_SHADOW_NONE</property>
10808 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
10811 + <widget class="GtkTreeView" id="fcontextView">
10812 + <property name="visible">True</property>
10813 + <property name="tooltip" translatable="yes">File Labeling</property>
10814 + <property name="can_focus">True</property>
10815 + <property name="headers_visible">True</property>
10816 + <property name="rules_hint">False</property>
10817 + <property name="reorderable">False</property>
10818 + <property name="enable_search">True</property>
10819 + <property name="fixed_height_mode">False</property>
10820 + <property name="hover_selection">False</property>
10821 + <property name="hover_expand">False</property>
10826 + <property name="padding">0</property>
10827 + <property name="expand">True</property>
10828 + <property name="fill">True</property>
10833 + <property name="tab_expand">False</property>
10834 + <property name="tab_fill">True</property>
10839 + <widget class="GtkLabel" id="label38">
10840 + <property name="visible">True</property>
10841 + <property name="label" translatable="yes">label38</property>
10842 + <property name="use_underline">False</property>
10843 + <property name="use_markup">False</property>
10844 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10845 + <property name="wrap">False</property>
10846 + <property name="selectable">False</property>
10847 + <property name="xalign">0.5</property>
10848 + <property name="yalign">0.5</property>
10849 + <property name="xpad">0</property>
10850 + <property name="ypad">0</property>
10851 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10852 + <property name="width_chars">-1</property>
10853 + <property name="single_line_mode">False</property>
10854 + <property name="angle">0</property>
10857 + <property name="type">tab</property>
10862 + <widget class="GtkVBox" id="vbox12">
10863 + <property name="visible">True</property>
10864 + <property name="homogeneous">False</property>
10865 + <property name="spacing">0</property>
10868 + <widget class="GtkToolbar" id="toolbar3">
10869 + <property name="visible">True</property>
10870 + <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
10871 + <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
10872 + <property name="tooltips">True</property>
10873 + <property name="show_arrow">True</property>
10876 + <widget class="GtkToolButton" id="toolbutton8">
10877 + <property name="visible">True</property>
10878 + <property name="tooltip" translatable="yes">Add SELinux User Mapping</property>
10879 + <property name="stock_id">gtk-add</property>
10880 + <property name="visible_horizontal">True</property>
10881 + <property name="visible_vertical">True</property>
10882 + <property name="is_important">False</property>
10883 + <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
10886 + <property name="expand">False</property>
10887 + <property name="homogeneous">True</property>
10892 + <widget class="GtkToolButton" id="toolbutton29">
10893 + <property name="visible">True</property>
10894 + <property name="tooltip" translatable="yes">Modify SELinux User Mapping</property>
10895 + <property name="stock_id">gtk-properties</property>
10896 + <property name="visible_horizontal">True</property>
10897 + <property name="visible_vertical">True</property>
10898 + <property name="is_important">False</property>
10899 + <signal name="clicked" handler="on_properties_clicked" last_modification_time="Wed, 15 Nov 2006 16:38:33 GMT"/>
10902 + <property name="expand">False</property>
10903 + <property name="homogeneous">True</property>
10908 + <widget class="GtkToolButton" id="toolbutton10">
10909 + <property name="visible">True</property>
10910 + <property name="tooltip" translatable="yes">Delete SELinux User Mapping</property>
10911 + <property name="stock_id">gtk-delete</property>
10912 + <property name="visible_horizontal">True</property>
10913 + <property name="visible_vertical">True</property>
10914 + <property name="is_important">False</property>
10915 + <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
10918 + <property name="expand">False</property>
10919 + <property name="homogeneous">True</property>
10924 + <property name="padding">0</property>
10925 + <property name="expand">False</property>
10926 + <property name="fill">False</property>
10931 + <widget class="GtkHBox" id="hbox13">
10932 + <property name="visible">True</property>
10933 + <property name="homogeneous">False</property>
10934 + <property name="spacing">0</property>
10937 + <widget class="GtkLabel" id="label57">
10938 + <property name="visible">True</property>
10939 + <property name="label" translatable="yes">Filter</property>
10940 + <property name="use_underline">False</property>
10941 + <property name="use_markup">False</property>
10942 + <property name="justify">GTK_JUSTIFY_LEFT</property>
10943 + <property name="wrap">False</property>
10944 + <property name="selectable">False</property>
10945 + <property name="xalign">0.5</property>
10946 + <property name="yalign">0.5</property>
10947 + <property name="xpad">0</property>
10948 + <property name="ypad">0</property>
10949 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
10950 + <property name="width_chars">-1</property>
10951 + <property name="single_line_mode">False</property>
10952 + <property name="angle">0</property>
10955 + <property name="padding">10</property>
10956 + <property name="expand">False</property>
10957 + <property name="fill">False</property>
10962 + <widget class="GtkEntry" id="loginsFilterEntry">
10963 + <property name="visible">True</property>
10964 + <property name="can_focus">True</property>
10965 + <property name="editable">True</property>
10966 + <property name="visibility">True</property>
10967 + <property name="max_length">0</property>
10968 + <property name="text" translatable="yes"></property>
10969 + <property name="has_frame">True</property>
10970 + <property name="invisible_char">•</property>
10971 + <property name="activates_default">False</property>
10972 + <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
10975 + <property name="padding">0</property>
10976 + <property name="expand">True</property>
10977 + <property name="fill">True</property>
10982 + <property name="padding">5</property>
10983 + <property name="expand">False</property>
10984 + <property name="fill">True</property>
10989 + <widget class="GtkScrolledWindow" id="scrolledwindow16">
10990 + <property name="visible">True</property>
10991 + <property name="can_focus">True</property>
10992 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
10993 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
10994 + <property name="shadow_type">GTK_SHADOW_NONE</property>
10995 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
10998 + <widget class="GtkTreeView" id="loginsView">
10999 + <property name="visible">True</property>
11000 + <property name="tooltip" translatable="yes">User Mapping</property>
11001 + <property name="can_focus">True</property>
11002 + <property name="headers_visible">True</property>
11003 + <property name="rules_hint">False</property>
11004 + <property name="reorderable">False</property>
11005 + <property name="enable_search">True</property>
11006 + <property name="fixed_height_mode">False</property>
11007 + <property name="hover_selection">False</property>
11008 + <property name="hover_expand">False</property>
11013 + <property name="padding">0</property>
11014 + <property name="expand">True</property>
11015 + <property name="fill">True</property>
11020 + <property name="tab_expand">False</property>
11021 + <property name="tab_fill">True</property>
11026 + <widget class="GtkLabel" id="label39">
11027 + <property name="visible">True</property>
11028 + <property name="label" translatable="yes">label39</property>
11029 + <property name="use_underline">False</property>
11030 + <property name="use_markup">False</property>
11031 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11032 + <property name="wrap">False</property>
11033 + <property name="selectable">False</property>
11034 + <property name="xalign">0.5</property>
11035 + <property name="yalign">0.5</property>
11036 + <property name="xpad">0</property>
11037 + <property name="ypad">0</property>
11038 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11039 + <property name="width_chars">-1</property>
11040 + <property name="single_line_mode">False</property>
11041 + <property name="angle">0</property>
11044 + <property name="type">tab</property>
11049 + <widget class="GtkVBox" id="vbox14">
11050 + <property name="visible">True</property>
11051 + <property name="homogeneous">False</property>
11052 + <property name="spacing">0</property>
11055 + <widget class="GtkToolbar" id="toolbar5">
11056 + <property name="visible">True</property>
11057 + <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
11058 + <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
11059 + <property name="tooltips">True</property>
11060 + <property name="show_arrow">True</property>
11063 + <widget class="GtkToolButton" id="toolbutton14">
11064 + <property name="visible">True</property>
11065 + <property name="tooltip" translatable="yes">Add User</property>
11066 + <property name="stock_id">gtk-add</property>
11067 + <property name="visible_horizontal">True</property>
11068 + <property name="visible_vertical">True</property>
11069 + <property name="is_important">False</property>
11070 + <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
11073 + <property name="expand">False</property>
11074 + <property name="homogeneous">True</property>
11079 + <widget class="GtkToolButton" id="toolbutton15">
11080 + <property name="visible">True</property>
11081 + <property name="tooltip" translatable="yes">Modify User</property>
11082 + <property name="stock_id">gtk-properties</property>
11083 + <property name="visible_horizontal">True</property>
11084 + <property name="visible_vertical">True</property>
11085 + <property name="is_important">False</property>
11086 + <signal name="clicked" handler="on_properties_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:51 GMT"/>
11089 + <property name="expand">False</property>
11090 + <property name="homogeneous">True</property>
11095 + <widget class="GtkToolButton" id="toolbutton16">
11096 + <property name="visible">True</property>
11097 + <property name="tooltip" translatable="yes">Delete User</property>
11098 + <property name="stock_id">gtk-delete</property>
11099 + <property name="visible_horizontal">True</property>
11100 + <property name="visible_vertical">True</property>
11101 + <property name="is_important">False</property>
11102 + <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
11105 + <property name="expand">False</property>
11106 + <property name="homogeneous">True</property>
11111 + <property name="padding">0</property>
11112 + <property name="expand">False</property>
11113 + <property name="fill">False</property>
11118 + <widget class="GtkHBox" id="hbox12">
11119 + <property name="visible">True</property>
11120 + <property name="homogeneous">False</property>
11121 + <property name="spacing">0</property>
11124 + <widget class="GtkLabel" id="label56">
11125 + <property name="visible">True</property>
11126 + <property name="label" translatable="yes">Filter</property>
11127 + <property name="use_underline">False</property>
11128 + <property name="use_markup">False</property>
11129 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11130 + <property name="wrap">False</property>
11131 + <property name="selectable">False</property>
11132 + <property name="xalign">0.5</property>
11133 + <property name="yalign">0.5</property>
11134 + <property name="xpad">0</property>
11135 + <property name="ypad">0</property>
11136 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11137 + <property name="width_chars">-1</property>
11138 + <property name="single_line_mode">False</property>
11139 + <property name="angle">0</property>
11142 + <property name="padding">10</property>
11143 + <property name="expand">False</property>
11144 + <property name="fill">False</property>
11149 + <widget class="GtkEntry" id="usersFilterEntry">
11150 + <property name="visible">True</property>
11151 + <property name="can_focus">True</property>
11152 + <property name="editable">True</property>
11153 + <property name="visibility">True</property>
11154 + <property name="max_length">0</property>
11155 + <property name="text" translatable="yes"></property>
11156 + <property name="has_frame">True</property>
11157 + <property name="invisible_char">•</property>
11158 + <property name="activates_default">False</property>
11159 + <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
11162 + <property name="padding">0</property>
11163 + <property name="expand">True</property>
11164 + <property name="fill">True</property>
11169 + <property name="padding">5</property>
11170 + <property name="expand">False</property>
11171 + <property name="fill">True</property>
11176 + <widget class="GtkScrolledWindow" id="scrolledwindow11">
11177 + <property name="visible">True</property>
11178 + <property name="can_focus">True</property>
11179 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
11180 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
11181 + <property name="shadow_type">GTK_SHADOW_NONE</property>
11182 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
11185 + <widget class="GtkTreeView" id="usersView">
11186 + <property name="visible">True</property>
11187 + <property name="tooltip" translatable="yes">SELinux User</property>
11188 + <property name="can_focus">True</property>
11189 + <property name="headers_visible">True</property>
11190 + <property name="rules_hint">False</property>
11191 + <property name="reorderable">False</property>
11192 + <property name="enable_search">True</property>
11193 + <property name="fixed_height_mode">False</property>
11194 + <property name="hover_selection">False</property>
11195 + <property name="hover_expand">False</property>
11200 + <property name="padding">0</property>
11201 + <property name="expand">True</property>
11202 + <property name="fill">True</property>
11207 + <property name="tab_expand">False</property>
11208 + <property name="tab_fill">True</property>
11213 + <widget class="GtkLabel" id="label41">
11214 + <property name="visible">True</property>
11215 + <property name="label" translatable="yes">label41</property>
11216 + <property name="use_underline">False</property>
11217 + <property name="use_markup">False</property>
11218 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11219 + <property name="wrap">False</property>
11220 + <property name="selectable">False</property>
11221 + <property name="xalign">0.5</property>
11222 + <property name="yalign">0.5</property>
11223 + <property name="xpad">0</property>
11224 + <property name="ypad">0</property>
11225 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11226 + <property name="width_chars">-1</property>
11227 + <property name="single_line_mode">False</property>
11228 + <property name="angle">0</property>
11231 + <property name="type">tab</property>
11236 + <widget class="GtkVBox" id="vbox15">
11237 + <property name="visible">True</property>
11238 + <property name="homogeneous">False</property>
11239 + <property name="spacing">0</property>
11242 + <widget class="GtkToolbar" id="toolbar6">
11243 + <property name="visible">True</property>
11244 + <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
11245 + <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
11246 + <property name="tooltips">False</property>
11247 + <property name="show_arrow">True</property>
11250 + <widget class="GtkToolButton" id="portsAddButton">
11251 + <property name="visible">True</property>
11252 + <property name="tooltip" translatable="yes">Add Network Port</property>
11253 + <property name="stock_id">gtk-add</property>
11254 + <property name="visible_horizontal">True</property>
11255 + <property name="visible_vertical">True</property>
11256 + <property name="is_important">False</property>
11257 + <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
11260 + <property name="expand">False</property>
11261 + <property name="homogeneous">True</property>
11266 + <widget class="GtkToolButton" id="portsPropertiesButton">
11267 + <property name="visible">True</property>
11268 + <property name="tooltip" translatable="yes">Edit Network Port</property>
11269 + <property name="stock_id">gtk-properties</property>
11270 + <property name="visible_horizontal">True</property>
11271 + <property name="visible_vertical">True</property>
11272 + <property name="is_important">False</property>
11273 + <signal name="clicked" handler="on_properties_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:51 GMT"/>
11276 + <property name="expand">False</property>
11277 + <property name="homogeneous">True</property>
11282 + <widget class="GtkToolButton" id="portsDeleteButton">
11283 + <property name="visible">True</property>
11284 + <property name="tooltip" translatable="yes">Delete Network Port</property>
11285 + <property name="stock_id">gtk-delete</property>
11286 + <property name="visible_horizontal">True</property>
11287 + <property name="visible_vertical">True</property>
11288 + <property name="is_important">False</property>
11289 + <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
11292 + <property name="expand">False</property>
11293 + <property name="homogeneous">True</property>
11298 + <widget class="GtkToolItem" id="toolitem2">
11299 + <property name="visible">True</property>
11300 + <property name="visible_horizontal">True</property>
11301 + <property name="visible_vertical">True</property>
11302 + <property name="is_important">False</property>
11305 + <widget class="GtkVSeparator" id="vseparator1">
11306 + <property name="width_request">32</property>
11307 + <property name="visible">True</property>
11312 + <property name="expand">False</property>
11313 + <property name="homogeneous">False</property>
11318 + <widget class="GtkToolButton" id="listViewButton">
11319 + <property name="visible">True</property>
11320 + <property name="tooltip" translatable="yes">Toggle between Customized and All Ports</property>
11321 + <property name="label" translatable="yes">Group View</property>
11322 + <property name="use_underline">True</property>
11323 + <property name="stock_id">gtk-indent</property>
11324 + <property name="visible_horizontal">True</property>
11325 + <property name="visible_vertical">True</property>
11326 + <property name="is_important">False</property>
11327 + <signal name="clicked" handler="on_group_clicked" last_modification_time="Mon, 01 Oct 2007 21:31:19 GMT"/>
11330 + <property name="expand">False</property>
11331 + <property name="homogeneous">True</property>
11336 + <widget class="GtkToolButton" id="toolbutton35">
11337 + <property name="visible">True</property>
11338 + <property name="tooltip" translatable="yes">Toggle between Customized and All Ports</property>
11339 + <property name="label" translatable="yes">Customized</property>
11340 + <property name="use_underline">True</property>
11341 + <property name="stock_id">gtk-find</property>
11342 + <property name="visible_horizontal">True</property>
11343 + <property name="visible_vertical">True</property>
11344 + <property name="is_important">False</property>
11345 + <signal name="clicked" handler="on_local_clicked" last_modification_time="Wed, 19 Sep 2007 19:14:08 GMT"/>
11348 + <property name="expand">False</property>
11349 + <property name="homogeneous">True</property>
11354 + <property name="padding">0</property>
11355 + <property name="expand">False</property>
11356 + <property name="fill">False</property>
11361 + <widget class="GtkHBox" id="hbox9">
11362 + <property name="visible">True</property>
11363 + <property name="homogeneous">False</property>
11364 + <property name="spacing">0</property>
11367 + <widget class="GtkLabel" id="label53">
11368 + <property name="visible">True</property>
11369 + <property name="label" translatable="yes">Filter</property>
11370 + <property name="use_underline">False</property>
11371 + <property name="use_markup">False</property>
11372 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11373 + <property name="wrap">False</property>
11374 + <property name="selectable">False</property>
11375 + <property name="xalign">0.5</property>
11376 + <property name="yalign">0.5</property>
11377 + <property name="xpad">0</property>
11378 + <property name="ypad">0</property>
11379 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11380 + <property name="width_chars">-1</property>
11381 + <property name="single_line_mode">False</property>
11382 + <property name="angle">0</property>
11385 + <property name="padding">10</property>
11386 + <property name="expand">False</property>
11387 + <property name="fill">False</property>
11392 + <widget class="GtkEntry" id="portsFilterEntry">
11393 + <property name="visible">True</property>
11394 + <property name="can_focus">True</property>
11395 + <property name="editable">True</property>
11396 + <property name="visibility">True</property>
11397 + <property name="max_length">0</property>
11398 + <property name="text" translatable="yes"></property>
11399 + <property name="has_frame">True</property>
11400 + <property name="invisible_char">•</property>
11401 + <property name="activates_default">False</property>
11402 + <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
11405 + <property name="padding">0</property>
11406 + <property name="expand">True</property>
11407 + <property name="fill">True</property>
11412 + <property name="padding">5</property>
11413 + <property name="expand">False</property>
11414 + <property name="fill">True</property>
11419 + <widget class="GtkScrolledWindow" id="scrolledwindow13">
11420 + <property name="visible">True</property>
11421 + <property name="can_focus">True</property>
11422 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
11423 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
11424 + <property name="shadow_type">GTK_SHADOW_NONE</property>
11425 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
11428 + <widget class="GtkTreeView" id="portsView">
11429 + <property name="visible">True</property>
11430 + <property name="tooltip" translatable="yes">Network Port</property>
11431 + <property name="can_focus">True</property>
11432 + <property name="headers_visible">True</property>
11433 + <property name="rules_hint">False</property>
11434 + <property name="reorderable">False</property>
11435 + <property name="enable_search">True</property>
11436 + <property name="fixed_height_mode">False</property>
11437 + <property name="hover_selection">False</property>
11438 + <property name="hover_expand">False</property>
11443 + <property name="padding">0</property>
11444 + <property name="expand">True</property>
11445 + <property name="fill">True</property>
11450 + <property name="tab_expand">False</property>
11451 + <property name="tab_fill">True</property>
11456 + <widget class="GtkLabel" id="label42">
11457 + <property name="visible">True</property>
11458 + <property name="label" translatable="yes">label42</property>
11459 + <property name="use_underline">False</property>
11460 + <property name="use_markup">False</property>
11461 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11462 + <property name="wrap">False</property>
11463 + <property name="selectable">False</property>
11464 + <property name="xalign">0.5</property>
11465 + <property name="yalign">0.5</property>
11466 + <property name="xpad">0</property>
11467 + <property name="ypad">0</property>
11468 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11469 + <property name="width_chars">-1</property>
11470 + <property name="single_line_mode">False</property>
11471 + <property name="angle">0</property>
11474 + <property name="type">tab</property>
11479 + <widget class="GtkVBox" id="vbox17">
11480 + <property name="visible">True</property>
11481 + <property name="homogeneous">False</property>
11482 + <property name="spacing">0</property>
11485 + <widget class="GtkToolbar" id="toolbar8">
11486 + <property name="visible">True</property>
11487 + <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
11488 + <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
11489 + <property name="tooltips">True</property>
11490 + <property name="show_arrow">True</property>
11493 + <widget class="GtkToolButton" id="newModuleButton">
11494 + <property name="visible">True</property>
11495 + <property name="tooltip" translatable="yes">Generate new policy module</property>
11496 + <property name="stock_id">gtk-new</property>
11497 + <property name="visible_horizontal">True</property>
11498 + <property name="visible_vertical">True</property>
11499 + <property name="is_important">False</property>
11500 + <signal name="clicked" handler="on_new_clicked" last_modification_time="Sat, 17 Mar 2007 15:53:29 GMT"/>
11503 + <property name="expand">False</property>
11504 + <property name="homogeneous">True</property>
11509 + <widget class="GtkToolButton" id="toolbutton23">
11510 + <property name="visible">True</property>
11511 + <property name="tooltip" translatable="yes">Load policy module</property>
11512 + <property name="stock_id">gtk-add</property>
11513 + <property name="visible_horizontal">True</property>
11514 + <property name="visible_vertical">True</property>
11515 + <property name="is_important">False</property>
11516 + <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
11519 + <property name="expand">False</property>
11520 + <property name="homogeneous">True</property>
11525 + <widget class="GtkToolButton" id="toolbutton25">
11526 + <property name="visible">True</property>
11527 + <property name="tooltip" translatable="yes">Remove loadable policy module</property>
11528 + <property name="stock_id">gtk-remove</property>
11529 + <property name="visible_horizontal">True</property>
11530 + <property name="visible_vertical">True</property>
11531 + <property name="is_important">False</property>
11532 + <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
11535 + <property name="expand">False</property>
11536 + <property name="homogeneous">True</property>
11541 + <widget class="GtkToolItem" id="toolitem3">
11542 + <property name="visible">True</property>
11543 + <property name="visible_horizontal">True</property>
11544 + <property name="visible_vertical">True</property>
11545 + <property name="is_important">False</property>
11548 + <widget class="GtkVSeparator" id="vseparator2">
11549 + <property name="width_request">10</property>
11550 + <property name="visible">True</property>
11555 + <property name="expand">False</property>
11556 + <property name="homogeneous">False</property>
11561 + <widget class="GtkToolButton" id="enableAuditButton">
11562 + <property name="visible">True</property>
11563 + <property name="tooltip" translatable="yes">Enable/Disable additional audit rules, that are normally not reported in the log files.</property>
11564 + <property name="label" translatable="yes">Enable Audit</property>
11565 + <property name="use_underline">True</property>
11566 + <property name="stock_id">gtk-zoom-in</property>
11567 + <property name="visible_horizontal">True</property>
11568 + <property name="visible_vertical">True</property>
11569 + <property name="is_important">False</property>
11570 + <signal name="clicked" handler="on_disable_audit_clicked" last_modification_time="Wed, 15 Nov 2006 16:29:34 GMT"/>
11573 + <property name="expand">False</property>
11574 + <property name="homogeneous">True</property>
11579 + <property name="padding">0</property>
11580 + <property name="expand">False</property>
11581 + <property name="fill">False</property>
11586 + <widget class="GtkHBox" id="hbox11">
11587 + <property name="visible">True</property>
11588 + <property name="homogeneous">False</property>
11589 + <property name="spacing">0</property>
11592 + <widget class="GtkLabel" id="label55">
11593 + <property name="visible">True</property>
11594 + <property name="label" translatable="yes">Filter</property>
11595 + <property name="use_underline">False</property>
11596 + <property name="use_markup">False</property>
11597 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11598 + <property name="wrap">False</property>
11599 + <property name="selectable">False</property>
11600 + <property name="xalign">0.5</property>
11601 + <property name="yalign">0.5</property>
11602 + <property name="xpad">0</property>
11603 + <property name="ypad">0</property>
11604 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11605 + <property name="width_chars">-1</property>
11606 + <property name="single_line_mode">False</property>
11607 + <property name="angle">0</property>
11610 + <property name="padding">10</property>
11611 + <property name="expand">False</property>
11612 + <property name="fill">False</property>
11617 + <widget class="GtkEntry" id="modulesFilterEntry">
11618 + <property name="visible">True</property>
11619 + <property name="can_focus">True</property>
11620 + <property name="editable">True</property>
11621 + <property name="visibility">True</property>
11622 + <property name="max_length">0</property>
11623 + <property name="text" translatable="yes"></property>
11624 + <property name="has_frame">True</property>
11625 + <property name="invisible_char">•</property>
11626 + <property name="activates_default">False</property>
11627 + <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
11630 + <property name="padding">0</property>
11631 + <property name="expand">True</property>
11632 + <property name="fill">True</property>
11637 + <property name="padding">5</property>
11638 + <property name="expand">False</property>
11639 + <property name="fill">True</property>
11644 + <widget class="GtkScrolledWindow" id="scrolledwindow15">
11645 + <property name="visible">True</property>
11646 + <property name="can_focus">True</property>
11647 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
11648 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
11649 + <property name="shadow_type">GTK_SHADOW_NONE</property>
11650 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
11653 + <widget class="GtkTreeView" id="modulesView">
11654 + <property name="visible">True</property>
11655 + <property name="tooltip" translatable="yes">Policy Module</property>
11656 + <property name="can_focus">True</property>
11657 + <property name="headers_visible">True</property>
11658 + <property name="rules_hint">False</property>
11659 + <property name="reorderable">False</property>
11660 + <property name="enable_search">True</property>
11661 + <property name="fixed_height_mode">False</property>
11662 + <property name="hover_selection">False</property>
11663 + <property name="hover_expand">False</property>
11668 + <property name="padding">0</property>
11669 + <property name="expand">True</property>
11670 + <property name="fill">True</property>
11675 + <property name="tab_expand">False</property>
11676 + <property name="tab_fill">True</property>
11681 + <widget class="GtkLabel" id="label44">
11682 + <property name="visible">True</property>
11683 + <property name="label" translatable="yes">label44</property>
11684 + <property name="use_underline">False</property>
11685 + <property name="use_markup">False</property>
11686 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11687 + <property name="wrap">False</property>
11688 + <property name="selectable">False</property>
11689 + <property name="xalign">0.5</property>
11690 + <property name="yalign">0.5</property>
11691 + <property name="xpad">0</property>
11692 + <property name="ypad">0</property>
11693 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11694 + <property name="width_chars">-1</property>
11695 + <property name="single_line_mode">False</property>
11696 + <property name="angle">0</property>
11699 + <property name="type">tab</property>
11704 + <widget class="GtkVBox" id="vbox19">
11705 + <property name="visible">True</property>
11706 + <property name="homogeneous">False</property>
11707 + <property name="spacing">0</property>
11710 + <widget class="GtkToolbar" id="toolbar10">
11711 + <property name="visible">True</property>
11712 + <property name="orientation">GTK_ORIENTATION_HORIZONTAL</property>
11713 + <property name="toolbar_style">GTK_TOOLBAR_BOTH</property>
11714 + <property name="tooltips">True</property>
11715 + <property name="show_arrow">True</property>
11718 + <widget class="GtkToolButton" id="permissiveButton">
11719 + <property name="visible">True</property>
11720 + <property name="tooltip" translatable="yes">Change process mode to permissive.</property>
11721 + <property name="label" translatable="yes">Permissive</property>
11722 + <property name="use_underline">True</property>
11723 + <property name="stock_id">gtk-dialog-warning</property>
11724 + <property name="visible_horizontal">True</property>
11725 + <property name="visible_vertical">True</property>
11726 + <property name="is_important">False</property>
11727 + <signal name="clicked" handler="on_add_clicked" last_modification_time="Mon, 16 Jan 2006 18:27:03 GMT"/>
11730 + <property name="expand">False</property>
11731 + <property name="homogeneous">True</property>
11736 + <widget class="GtkToolButton" id="enforcingButton">
11737 + <property name="visible">True</property>
11738 + <property name="tooltip" translatable="yes">Change process mode to enforcing</property>
11739 + <property name="label" translatable="yes">Enforcing</property>
11740 + <property name="use_underline">True</property>
11741 + <property name="stock_id">gtk-dialog-error</property>
11742 + <property name="visible_horizontal">True</property>
11743 + <property name="visible_vertical">True</property>
11744 + <property name="is_important">False</property>
11745 + <signal name="clicked" handler="on_delete_clicked" last_modification_time="Mon, 16 Jan 2006 18:26:29 GMT"/>
11748 + <property name="expand">False</property>
11749 + <property name="homogeneous">True</property>
11754 + <property name="padding">0</property>
11755 + <property name="expand">False</property>
11756 + <property name="fill">False</property>
11761 + <widget class="GtkHBox" id="hbox15">
11762 + <property name="visible">True</property>
11763 + <property name="homogeneous">False</property>
11764 + <property name="spacing">0</property>
11767 + <widget class="GtkLabel" id="label60">
11768 + <property name="visible">True</property>
11769 + <property name="label" translatable="yes">Filter</property>
11770 + <property name="use_underline">False</property>
11771 + <property name="use_markup">False</property>
11772 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11773 + <property name="wrap">False</property>
11774 + <property name="selectable">False</property>
11775 + <property name="xalign">0.5</property>
11776 + <property name="yalign">0.5</property>
11777 + <property name="xpad">0</property>
11778 + <property name="ypad">0</property>
11779 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11780 + <property name="width_chars">-1</property>
11781 + <property name="single_line_mode">False</property>
11782 + <property name="angle">0</property>
11785 + <property name="padding">10</property>
11786 + <property name="expand">False</property>
11787 + <property name="fill">False</property>
11792 + <widget class="GtkEntry" id="domainsFilterEntry">
11793 + <property name="visible">True</property>
11794 + <property name="can_focus">True</property>
11795 + <property name="editable">True</property>
11796 + <property name="visibility">True</property>
11797 + <property name="max_length">0</property>
11798 + <property name="text" translatable="yes"></property>
11799 + <property name="has_frame">True</property>
11800 + <property name="invisible_char">•</property>
11801 + <property name="activates_default">False</property>
11802 + <signal name="changed" handler="on_booleansFilter_changed" last_modification_time="Fri, 06 Apr 2007 12:39:26 GMT"/>
11805 + <property name="padding">0</property>
11806 + <property name="expand">True</property>
11807 + <property name="fill">True</property>
11812 + <property name="padding">5</property>
11813 + <property name="expand">False</property>
11814 + <property name="fill">True</property>
11819 + <widget class="GtkScrolledWindow" id="scrolledwindow20">
11820 + <property name="visible">True</property>
11821 + <property name="can_focus">True</property>
11822 + <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
11823 + <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
11824 + <property name="shadow_type">GTK_SHADOW_NONE</property>
11825 + <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
11828 + <widget class="GtkTreeView" id="domainsView">
11829 + <property name="visible">True</property>
11830 + <property name="tooltip" translatable="yes">Process Domain</property>
11831 + <property name="can_focus">True</property>
11832 + <property name="headers_visible">True</property>
11833 + <property name="rules_hint">False</property>
11834 + <property name="reorderable">False</property>
11835 + <property name="enable_search">True</property>
11836 + <property name="fixed_height_mode">False</property>
11837 + <property name="hover_selection">False</property>
11838 + <property name="hover_expand">False</property>
11843 + <property name="padding">0</property>
11844 + <property name="expand">True</property>
11845 + <property name="fill">True</property>
11850 + <property name="tab_expand">False</property>
11851 + <property name="tab_fill">True</property>
11856 + <widget class="GtkLabel" id="label59">
11857 + <property name="visible">True</property>
11858 + <property name="label" translatable="yes">label59</property>
11859 + <property name="use_underline">False</property>
11860 + <property name="use_markup">False</property>
11861 + <property name="justify">GTK_JUSTIFY_LEFT</property>
11862 + <property name="wrap">False</property>
11863 + <property name="selectable">False</property>
11864 + <property name="xalign">0.5</property>
11865 + <property name="yalign">0.5</property>
11866 + <property name="xpad">0</property>
11867 + <property name="ypad">0</property>
11868 + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
11869 + <property name="width_chars">-1</property>
11870 + <property name="single_line_mode">False</property>
11871 + <property name="angle">0</property>
11874 + <property name="type">tab</property>
11879 + <property name="shrink">True</property>
11880 + <property name="resize">True</property>
11887 + <property name="padding">0</property>
11888 + <property name="expand">True</property>
11889 + <property name="fill">True</property>
11893 + <child internal-child="appbar">
11894 + <widget class="GnomeAppBar" id="appbar2">
11895 + <property name="visible">True</property>
11896 + <property name="has_progress">True</property>
11897 + <property name="has_status">True</property>
11900 + <property name="padding">0</property>
11901 + <property name="expand">True</property>
11902 + <property name="fill">True</property>
11907 +</glade-interface>
11908 diff -up policycoreutils-2.1.8/gui/system-config-selinux.gladep.gui policycoreutils-2.1.8/gui/system-config-selinux.gladep
11909 --- policycoreutils-2.1.8/gui/system-config-selinux.gladep.gui 2011-11-07 15:12:01.914834238 -0500
11910 +++ policycoreutils-2.1.8/gui/system-config-selinux.gladep 2011-11-07 15:12:01.914834238 -0500
11912 +<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
11913 +<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
11917 + <program_name></program_name>
11919 diff -up policycoreutils-2.1.8/gui/system-config-selinux.py.gui policycoreutils-2.1.8/gui/system-config-selinux.py
11920 --- policycoreutils-2.1.8/gui/system-config-selinux.py.gui 2011-11-07 15:12:01.914834238 -0500
11921 +++ policycoreutils-2.1.8/gui/system-config-selinux.py 2011-11-07 15:12:01.915834239 -0500
11923 +#!/usr/bin/python -Es
11925 +# system-config-selinux.py - GUI for SELinux Config tool in system-config-selinux
11927 +# Dan Walsh <dwalsh@redhat.com>
11929 +# Copyright 2006-2009 Red Hat, Inc.
11931 +# This program is free software; you can redistribute it and/or modify
11932 +# it under the terms of the GNU General Public License as published by
11933 +# the Free Software Foundation; either version 2 of the License, or
11934 +# (at your option) any later version.
11936 +# This program is distributed in the hope that it will be useful,
11937 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
11938 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11939 +# GNU General Public License for more details.
11941 +# You should have received a copy of the GNU General Public License
11942 +# along with this program; if not, write to the Free Software
11943 +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
11954 +import booleansPage
11958 +import modulesPage
11959 +import domainsPage
11960 +import fcontextPage
11965 +PROGNAME="policycoreutils"
11968 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
11969 +gettext.textdomain(PROGNAME)
11971 + gettext.install(PROGNAME,
11972 + localedir="/usr/share/locale",
11974 + codeset = 'utf-8')
11976 + import __builtin__
11977 + __builtin__.__dict__['_'] = unicode
11979 +gnome.program_init("SELinux Management Tool", "5")
11983 +sys.path.append('/usr/share/system-config-selinux')
11988 +## Pull in the Glade file
11990 +if os.access("system-config-selinux.glade", os.F_OK):
11991 + xml = gtk.glade.XML ("system-config-selinux.glade", domain=PROGNAME)
11993 + xml = gtk.glade.XML ("/usr/share/system-config-selinux/system-config-selinux.glade", domain=PROGNAME)
11995 +class childWindow:
11996 + def __init__(self):
11999 + xml.signal_connect("on_quit_activate", self.destroy)
12000 + xml.signal_connect("on_delete_clicked", self.delete)
12001 + xml.signal_connect("on_add_clicked", self.add)
12002 + xml.signal_connect("on_properties_clicked", self.properties)
12003 + xml.signal_connect("on_local_clicked", self.on_local_clicked)
12004 + self.add_page(statusPage.statusPage(xml))
12005 + if selinux.is_selinux_enabled() > 0:
12007 + self.add_page(booleansPage.booleansPage(xml))
12008 + self.add_page(fcontextPage.fcontextPage(xml))
12009 + self.add_page(loginsPage.loginsPage(xml))
12010 + self.add_page(usersPage.usersPage(xml))
12011 + self.add_page(portsPage.portsPage(xml))
12012 + self.add_page(modulesPage.modulesPage(xml)) # modules
12013 + self.add_page(domainsPage.domainsPage(xml)) # domains
12014 + except ValueError, e:
12015 + self.error(e.message)
12017 + xml.signal_connect("on_quit_activate", self.destroy)
12018 + xml.signal_connect("on_policy_activate", self.policy)
12019 + xml.signal_connect("on_logging_activate", self.logging)
12020 + xml.signal_connect("on_about_activate", self.on_about_activate)
12022 + self.add_menu = xml.get_widget("add_menu_item")
12023 + self.properties_menu = xml.get_widget("properties_menu_item")
12024 + self.delete_menu = xml.get_widget("delete_menu_item")
12026 + def error(self, message):
12027 + dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR,
12028 + gtk.BUTTONS_CLOSE,
12030 + dlg.set_position(gtk.WIN_POS_MOUSE)
12035 + def add_page(self, page):
12036 + self.tabs.append(page)
12038 + def policy(self, args):
12039 + os.spawnl(os.P_NOWAIT, "/usr/share/system-config-selinux/semanagegui.py")
12040 + def logging(self, args):
12041 + os.spawnl(os.P_NOWAIT, "/usr/bin/seaudit")
12043 + def delete(self, args):
12044 + self.tabs[self.notebook.get_current_page()].deleteDialog()
12046 + def add(self, args):
12047 + self.tabs[self.notebook.get_current_page()].addDialog()
12049 + def properties(self, args):
12050 + self.tabs[self.notebook.get_current_page()].propertiesDialog()
12052 + def on_local_clicked(self, button):
12053 + self.tabs[self.notebook.get_current_page()].on_local_clicked(button)
12055 + def on_about_activate(self, args):
12056 + dlg = xml.get_widget ("aboutWindow")
12060 + def destroy(self, args):
12063 + def use_menus(self, use_menus):
12064 + self.add_menu.set_sensitive(use_menus)
12065 + self.properties_menu.set_sensitive(use_menus)
12066 + self.delete_menu.set_sensitive(use_menus)
12068 + def itemSelected(self, selection):
12069 + store, rows = selection.get_selected_rows()
12070 + if store != None and len(rows) > 0:
12071 + self.notebook.set_current_page(rows[0][0])
12072 + self.use_menus(self.tabs[rows[0][0]].use_menus())
12074 + self.notebook.set_current_page(0)
12075 + self.use_menus(self.tabs[0].use_menus())
12078 + def setupScreen(self):
12079 + # Bring in widgets from glade file.
12080 + self.mainWindow = self.xml.get_widget("mainWindow")
12081 + self.notebook = self.xml.get_widget("notebook")
12082 + self.view = self.xml.get_widget("selectView")
12083 + self.view.get_selection().connect("changed", self.itemSelected)
12084 + self.store = gtk.ListStore(gobject.TYPE_STRING)
12085 + self.view.set_model(self.store)
12086 + col = gtk.TreeViewColumn("", gtk.CellRendererText(), text = 0)
12087 + col.set_resizable(True)
12088 + self.view.append_column(col)
12090 + for page in self.tabs:
12091 + iter = self.store.append()
12092 + self.store.set_value(iter, 0, page.get_description())
12093 + self.view.get_selection().select_path ((0,))
12095 + def stand_alone(self):
12096 + desktopName = _("Configue SELinux")
12098 + self.setupScreen()
12100 + self.mainWindow.connect("destroy", self.destroy)
12102 + self.mainWindow.show_all()
12105 +if __name__ == "__main__":
12106 + signal.signal (signal.SIGINT, signal.SIG_DFL)
12108 + app = childWindow()
12109 + app.stand_alone()
12110 diff -up policycoreutils-2.1.8/gui/templates/boolean.py.gui policycoreutils-2.1.8/gui/templates/boolean.py
12111 --- policycoreutils-2.1.8/gui/templates/boolean.py.gui 2011-11-07 15:12:01.915834239 -0500
12112 +++ policycoreutils-2.1.8/gui/templates/boolean.py 2011-11-07 15:12:01.916834240 -0500
12114 +# Copyright (C) 2007-2011 Red Hat
12115 +# see file 'COPYING' for use and warranty information
12117 +# policygentool is a tool for the initial generation of SELinux policy
12119 +# This program is free software; you can redistribute it and/or
12120 +# modify it under the terms of the GNU General Public License as
12121 +# published by the Free Software Foundation; either version 2 of
12122 +# the License, or (at your option) any later version.
12124 +# This program is distributed in the hope that it will be useful,
12125 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
12126 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12127 +# GNU General Public License for more details.
12129 +# You should have received a copy of the GNU General Public License
12130 +# along with this program; if not, write to the Free Software
12131 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
12135 +########################### boolean Template File ###########################
12143 +gen_tunable(BOOLEAN, false)
12147 +tunable_policy(`BOOLEAN',`
12154 diff -up policycoreutils-2.1.8/gui/templates/etc_rw.py.gui policycoreutils-2.1.8/gui/templates/etc_rw.py
12155 --- policycoreutils-2.1.8/gui/templates/etc_rw.py.gui 2011-11-07 15:12:01.916834240 -0500
12156 +++ policycoreutils-2.1.8/gui/templates/etc_rw.py 2011-11-07 15:12:01.916834240 -0500
12158 +# Copyright (C) 2007-2011 Red Hat
12159 +# see file 'COPYING' for use and warranty information
12161 +# policygentool is a tool for the initial generation of SELinux policy
12163 +# This program is free software; you can redistribute it and/or
12164 +# modify it under the terms of the GNU General Public License as
12165 +# published by the Free Software Foundation; either version 2 of
12166 +# the License, or (at your option) any later version.
12168 +# This program is distributed in the hope that it will be useful,
12169 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
12170 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12171 +# GNU General Public License for more details.
12173 +# You should have received a copy of the GNU General Public License
12174 +# along with this program; if not, write to the Free Software
12175 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
12179 +########################### etc_rw Template File #############################
12181 +########################### Type Enforcement File #############################
12183 +type TEMPLATETYPE_etc_rw_t;
12184 +files_type(TEMPLATETYPE_etc_rw_t)
12187 +manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_etc_rw_t, TEMPLATETYPE_etc_rw_t)
12188 +manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_etc_rw_t, TEMPLATETYPE_etc_rw_t)
12189 +files_etc_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_etc_rw_t, { dir file })
12192 +########################### Interface File #############################
12194 +########################################
12196 +## Search TEMPLATETYPE conf directories.
12198 +## <param name="domain">
12200 +## Domain allowed access.
12204 +interface(`TEMPLATETYPE_search_conf',`
12206 + type TEMPLATETYPE_etc_rw_t;
12209 + allow $1 TEMPLATETYPE_etc_rw_t:dir search_dir_perms;
12210 + files_search_etc($1)
12213 +########################################
12215 +## Read TEMPLATETYPE conf files.
12217 +## <param name="domain">
12219 +## Domain allowed access.
12223 +interface(`TEMPLATETYPE_read_conf_files',`
12225 + type TEMPLATETYPE_etc_rw_t;
12228 + allow $1 TEMPLATETYPE_etc_rw_t:file read_file_perms;
12229 + allow $1 TEMPLATETYPE_etc_rw_t:dir list_dir_perms;
12230 + files_search_etc($1)
12233 +########################################
12235 +## Manage TEMPLATETYPE conf files.
12237 +## <param name="domain">
12239 +## Domain allowed access.
12243 +interface(`TEMPLATETYPE_manage_conf_files',`
12245 + type TEMPLATETYPE_etc_rw_t;
12248 + manage_files_pattern($1, TEMPLATETYPE_etc_rw_t, TEMPLATETYPE_etc_rw_t)
12249 + files_search_etc($1)
12254 +if_admin_types="""
12255 + type TEMPLATETYPE_etc_rw_t;"""
12257 +if_admin_rules="""
12258 + files_search_etc($1)
12259 + admin_pattern($1, TEMPLATETYPE_etc_rw_t)
12262 +########################### File Context ##################################
12264 +FILENAME -- gen_context(system_u:object_r:TEMPLATETYPE_etc_rw_t,s0)
12268 +FILENAME(/.*)? gen_context(system_u:object_r:TEMPLATETYPE_etc_rw_t,s0)
12270 diff -up policycoreutils-2.1.8/gui/templates/executable.py.gui policycoreutils-2.1.8/gui/templates/executable.py
12271 --- policycoreutils-2.1.8/gui/templates/executable.py.gui 2011-11-07 15:12:01.916834240 -0500
12272 +++ policycoreutils-2.1.8/gui/templates/executable.py 2011-11-07 15:12:01.917834240 -0500
12274 +# Copyright (C) 2007-2011 Red Hat
12275 +# see file 'COPYING' for use and warranty information
12277 +# policygentool is a tool for the initial generation of SELinux policy
12279 +# This program is free software; you can redistribute it and/or
12280 +# modify it under the terms of the GNU General Public License as
12281 +# published by the Free Software Foundation; either version 2 of
12282 +# the License, or (at your option) any later version.
12284 +# This program is distributed in the hope that it will be useful,
12285 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
12286 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12287 +# GNU General Public License for more details.
12289 +# You should have received a copy of the GNU General Public License
12290 +# along with this program; if not, write to the Free Software
12291 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
12295 +########################### Type Enforcement File #############################
12296 +te_daemon_types="""\
12297 +policy_module(TEMPLATETYPE, 1.0.0)
12299 +########################################
12304 +type TEMPLATETYPE_t;
12305 +type TEMPLATETYPE_exec_t;
12306 +init_daemon_domain(TEMPLATETYPE_t, TEMPLATETYPE_exec_t)
12308 +permissive TEMPLATETYPE_t;
12311 +te_initscript_types="""
12312 +type TEMPLATETYPE_initrc_exec_t;
12313 +init_script_file(TEMPLATETYPE_initrc_exec_t)
12316 +te_dbusd_types="""\
12317 +policy_module(TEMPLATETYPE, 1.0.0)
12319 +########################################
12324 +type TEMPLATETYPE_t;
12325 +type TEMPLATETYPE_exec_t;
12326 +dbus_system_domain(TEMPLATETYPE_t, TEMPLATETYPE_exec_t)
12328 +permissive TEMPLATETYPE_t;
12331 +te_inetd_types="""\
12332 +policy_module(TEMPLATETYPE, 1.0.0)
12334 +########################################
12339 +type TEMPLATETYPE_t;
12340 +type TEMPLATETYPE_exec_t;
12341 +inetd_service_domain(TEMPLATETYPE_t, TEMPLATETYPE_exec_t)
12343 +permissive TEMPLATETYPE_t;
12346 +te_userapp_types="""\
12347 +policy_module(TEMPLATETYPE, 1.0.0)
12349 +########################################
12354 +type TEMPLATETYPE_t;
12355 +type TEMPLATETYPE_exec_t;
12356 +application_domain(TEMPLATETYPE_t, TEMPLATETYPE_exec_t)
12357 +role system_r types TEMPLATETYPE_t;
12359 +permissive TEMPLATETYPE_t;
12362 +te_sandbox_types="""\
12363 +policy_module(TEMPLATETYPE, 1.0.0)
12365 +########################################
12370 +sandbox_x_domain_template(TEMPLATETYPE)
12372 +permissive TEMPLATETYPE_t;
12373 +permissive TEMPLATETYPE_client_t;
12378 +policy_module(TEMPLATETYPE, 1.0.0)
12380 +########################################
12385 +apache_content_template(TEMPLATETYPE)
12387 +permissive httpd_TEMPLATETYPE_script_t;
12390 +te_daemon_rules="""
12391 +allow TEMPLATETYPE_t self:fifo_file rw_fifo_file_perms;
12392 +allow TEMPLATETYPE_t self:unix_stream_socket create_stream_socket_perms;
12395 +te_inetd_rules="""
12398 +te_dbusd_rules="""
12401 +te_userapp_rules="""
12402 +allow TEMPLATETYPE_t self:fifo_file manage_fifo_file_perms;
12403 +allow TEMPLATETYPE_t self:unix_stream_socket create_stream_socket_perms;
12409 +te_sandbox_rules="""
12413 +auth_use_nsswitch(TEMPLATETYPE_t)
12416 +te_syslog_rules="""
12417 +logging_send_syslog_msg(TEMPLATETYPE_t)
12420 +te_resolve_rules="""
12421 +sysnet_dns_name_resolve(TEMPLATETYPE_t)
12425 +auth_domtrans_chk_passwd(TEMPLATETYPE_t)
12429 +mta_send_mail(TEMPLATETYPE_t)
12434 + dbus_system_bus_client(TEMPLATETYPE_t)
12435 + dbus_connect_system_bus(TEMPLATETYPE_t)
12439 +te_kerberos_rules="""
12441 + kerberos_use(TEMPLATETYPE_t)
12445 +te_manage_krb5_rcache_rules="""
12447 + kerberos_keytab_template(TEMPLATETYPE, TEMPLATETYPE_t)
12448 + kerberos_manage_host_rcache(TEMPLATETYPE_t)
12452 +te_audit_rules="""
12453 +logging_send_audit_msgs(TEMPLATETYPE_t)
12463 + TEMPLATETYPE_run(USER_t, USER_r)
12468 +domain_use_interactive_fds(TEMPLATETYPE_t)
12472 +files_read_etc_files(TEMPLATETYPE_t)
12475 +te_localization_rules="""
12476 +miscfiles_read_localization(TEMPLATETYPE_t)
12479 +########################### Interface File #############################
12481 +if_heading_rules="""
12482 +## <summary>policy for TEMPLATETYPE</summary>
12485 +if_program_rules="""
12487 +########################################
12489 +## Transition to TEMPLATETYPE.
12491 +## <param name=\"domain\">
12493 +## Domain allowed to transition.
12497 +interface(`TEMPLATETYPE_domtrans',`
12499 + type TEMPLATETYPE_t, TEMPLATETYPE_exec_t;
12502 + corecmd_search_bin($1)
12503 + domtrans_pattern($1, TEMPLATETYPE_exec_t, TEMPLATETYPE_t)
12508 +if_user_program_rules="""
12509 +########################################
12511 +## Execute TEMPLATETYPE in the TEMPLATETYPE domain, and
12512 +## allow the specified role the TEMPLATETYPE domain.
12514 +## <param name="domain">
12516 +## Domain allowed to transition
12519 +## <param name="role">
12521 +## The role to be allowed the TEMPLATETYPE domain.
12525 +interface(`TEMPLATETYPE_run',`
12527 + type TEMPLATETYPE_t;
12530 + TEMPLATETYPE_domtrans($1)
12531 + role $2 types TEMPLATETYPE_t;
12534 +########################################
12536 +## Role access for TEMPLATETYPE
12538 +## <param name="role">
12540 +## Role allowed access
12543 +## <param name="domain">
12545 +## User domain for the role
12549 +interface(`TEMPLATETYPE_role',`
12551 + type TEMPLATETYPE_t;
12554 + role $1 types TEMPLATETYPE_t;
12556 + TEMPLATETYPE_domtrans($2)
12558 + ps_process_pattern($2, TEMPLATETYPE_t)
12559 + allow $2 TEMPLATETYPE_t:process signal;
12564 +if_sandbox_rules="""
12565 +########################################
12567 +## Execute sandbox in the TEMPLATETYPE_t domain, and
12568 +## allow the specified role the TEMPLATETYPE_t domain.
12570 +## <param name="domain">
12572 +## Domain allowed to transition.
12575 +## <param name="role">
12577 +## The role to be allowed the TEMPLATETYPE_t domain.
12581 +interface(`TEMPLATETYPE_transition',`
12583 + type TEMPLATETYPE_t;
12584 + type TEMPLATETYPE_client_t;
12587 + allow $1 TEMPLATETYPE_t:process { signal_perms transition };
12588 + dontaudit $1 TEMPLATETYPE_t:process { noatsecure siginh rlimitinh };
12589 + role $2 types TEMPLATETYPE_t;
12590 + role $2 types TEMPLATETYPE_client_t;
12592 + allow TEMPLATETYPE_t $1:process { sigchld signull };
12593 + allow TEMPLATETYPE_t $1:fifo_file rw_inherited_fifo_file_perms;
12594 + allow TEMPLATETYPE_client_t $1:process { sigchld signull };
12595 + allow TEMPLATETYPE_client_t $1:fifo_file rw_inherited_fifo_file_perms;
12600 +if_role_change_rules="""
12601 +########################################
12603 +## Change to the TEMPLATETYPE role.
12605 +## <param name="role">
12607 +## Role allowed access.
12612 +interface(`TEMPLATETYPE_role_change',`
12614 + role TEMPLATETYPE_r;
12617 + allow $1 TEMPLATETYPE_r;
12622 +if_initscript_rules="""
12623 +########################################
12625 +## Execute TEMPLATETYPE server in the TEMPLATETYPE domain.
12627 +## <param name="domain">
12629 +## Domain allowed access.
12633 +interface(`TEMPLATETYPE_initrc_domtrans',`
12635 + type TEMPLATETYPE_initrc_exec_t;
12638 + init_labeled_script_domtrans($1, TEMPLATETYPE_initrc_exec_t)
12644 +########################################
12646 +## Send and receive messages from
12647 +## TEMPLATETYPE over dbus.
12649 +## <param name="domain">
12651 +## Domain allowed access.
12655 +interface(`TEMPLATETYPE_dbus_chat',`
12657 + type TEMPLATETYPE_t;
12658 + class dbus send_msg;
12661 + allow $1 TEMPLATETYPE_t:dbus send_msg;
12662 + allow TEMPLATETYPE_t $1:dbus send_msg;
12667 +if_begin_admin="""
12668 +########################################
12670 +## All of the rules required to administrate
12671 +## an TEMPLATETYPE environment
12673 +## <param name="domain">
12675 +## Domain allowed access.
12678 +## <param name="role">
12680 +## Role allowed access.
12685 +interface(`TEMPLATETYPE_admin',`
12687 + type TEMPLATETYPE_t;"""
12689 +if_middle_admin="""
12692 + allow $1 TEMPLATETYPE_t:process { ptrace signal_perms };
12693 + ps_process_pattern($1, TEMPLATETYPE_t)
12696 +if_initscript_admin_types="""
12697 + type TEMPLATETYPE_initrc_exec_t;"""
12699 +if_initscript_admin="""
12700 + TEMPLATETYPE_initrc_domtrans($1)
12701 + domain_system_change_exemption($1)
12702 + role_transition $2 TEMPLATETYPE_initrc_exec_t system_r;
12703 + allow $2 system_r;
12711 +########################### File Context ##################################
12714 +EXECUTABLE -- gen_context(system_u:object_r:TEMPLATETYPE_exec_t,s0)
12718 +# Users do not have file context, leave blank
12721 +fc_initscript="""\
12723 +EXECUTABLE -- gen_context(system_u:object_r:TEMPLATETYPE_initrc_exec_t,s0)
12725 diff -up policycoreutils-2.1.8/gui/templates/__init__.py.gui policycoreutils-2.1.8/gui/templates/__init__.py
12726 --- policycoreutils-2.1.8/gui/templates/__init__.py.gui 2011-11-07 15:12:01.917834240 -0500
12727 +++ policycoreutils-2.1.8/gui/templates/__init__.py 2011-11-07 15:12:01.917834240 -0500
12730 +# Copyright (C) 2007-2011 Red Hat
12732 +# This program is free software; you can redistribute it and/or modify
12733 +# it under the terms of the GNU General Public License as published by
12734 +# the Free Software Foundation; either version 2 of the License, or
12735 +# (at your option) any later version.
12737 +# This program is distributed in the hope that it will be useful,
12738 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
12739 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12740 +# GNU General Public License for more details.
12742 +# You should have received a copy of the GNU General Public License
12743 +# along with this program; if not, write to the Free Software
12744 +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
12747 diff -up policycoreutils-2.1.8/gui/templates/network.py.gui policycoreutils-2.1.8/gui/templates/network.py
12748 --- policycoreutils-2.1.8/gui/templates/network.py.gui 2011-11-07 15:12:01.917834240 -0500
12749 +++ policycoreutils-2.1.8/gui/templates/network.py 2011-11-07 15:12:01.918834240 -0500
12751 +# Copyright (C) 2007-2011 Red Hat
12752 +# see file 'COPYING' for use and warranty information
12754 +# policygentool is a tool for the initial generation of SELinux policy
12756 +# This program is free software; you can redistribute it and/or
12757 +# modify it under the terms of the GNU General Public License as
12758 +# published by the Free Software Foundation; either version 2 of
12759 +# the License, or (at your option) any later version.
12761 +# This program is distributed in the hope that it will be useful,
12762 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
12763 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12764 +# GNU General Public License for more details.
12766 +# You should have received a copy of the GNU General Public License
12767 +# along with this program; if not, write to the Free Software
12768 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
12772 +########################### Type Enforcement File #############################
12774 +type TEMPLATETYPE_port_t;
12775 +corenet_port(TEMPLATETYPE_port_t)
12779 +sysnet_dns_name_resolve(TEMPLATETYPE_t)
12780 +corenet_all_recvfrom_unlabeled(TEMPLATETYPE_t)
12784 +allow TEMPLATETYPE_t self:tcp_socket create_stream_socket_perms;
12785 +corenet_tcp_sendrecv_generic_if(TEMPLATETYPE_t)
12786 +corenet_tcp_sendrecv_generic_node(TEMPLATETYPE_t)
12787 +corenet_tcp_sendrecv_all_ports(TEMPLATETYPE_t)
12791 +corenet_tcp_bind_generic_node(TEMPLATETYPE_t)
12794 +te_in_need_port_tcp="""\
12795 +allow TEMPLATETYPE_t TEMPLATETYPE_port_t:tcp_socket name_bind;
12798 +te_out_need_port_tcp="""\
12799 +allow TEMPLATETYPE_t TEMPLATETYPE_port_t:tcp_socket name_connect;
12803 +allow TEMPLATETYPE_t self:udp_socket { create_socket_perms listen };
12804 +corenet_udp_sendrecv_generic_if(TEMPLATETYPE_t)
12805 +corenet_udp_sendrecv_generic_node(TEMPLATETYPE_t)
12806 +corenet_udp_sendrecv_all_ports(TEMPLATETYPE_t)
12810 +corenet_udp_bind_generic_node(TEMPLATETYPE_t)
12813 +te_in_need_port_udp="""\
12814 +allow TEMPLATETYPE_t TEMPLATETYPE_port_t:udp_socket name_bind;
12817 +te_out_all_ports_tcp="""\
12818 +corenet_tcp_connect_all_ports(TEMPLATETYPE_t)
12821 +te_out_reserved_ports_tcp="""\
12822 +corenet_tcp_connect_all_rpc_ports(TEMPLATETYPE_t)
12825 +te_out_unreserved_ports_tcp="""\
12826 +corenet_tcp_connect_all_unreserved_ports(TEMPLATETYPE_t)
12829 +te_in_all_ports_tcp="""\
12830 +corenet_tcp_bind_all_ports(TEMPLATETYPE_t)
12833 +te_in_reserved_ports_tcp="""\
12834 +corenet_tcp_bind_all_rpc_ports(TEMPLATETYPE_t)
12837 +te_in_unreserved_ports_tcp="""\
12838 +corenet_tcp_bind_all_unreserved_ports(TEMPLATETYPE_t)
12841 +te_in_all_ports_udp="""\
12842 +corenet_udp_bind_all_ports(TEMPLATETYPE_t)
12845 +te_in_reserved_ports_udp="""\
12846 +corenet_udp_bind_all_rpc_ports(TEMPLATETYPE_t)
12849 +te_in_unreserved_ports_udp="""\
12850 +corenet_udp_bind_all_unreserved_ports(TEMPLATETYPE_t)
12853 diff -up policycoreutils-2.1.8/gui/templates/rw.py.gui policycoreutils-2.1.8/gui/templates/rw.py
12854 --- policycoreutils-2.1.8/gui/templates/rw.py.gui 2011-11-07 15:12:01.918834240 -0500
12855 +++ policycoreutils-2.1.8/gui/templates/rw.py 2011-11-07 15:12:01.918834240 -0500
12857 +# Copyright (C) 2007-2011 Red Hat
12858 +# see file 'COPYING' for use and warranty information
12860 +# policygentool is a tool for the initial generation of SELinux policy
12862 +# This program is free software; you can redistribute it and/or
12863 +# modify it under the terms of the GNU General Public License as
12864 +# published by the Free Software Foundation; either version 2 of
12865 +# the License, or (at your option) any later version.
12867 +# This program is distributed in the hope that it will be useful,
12868 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
12869 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12870 +# GNU General Public License for more details.
12872 +# You should have received a copy of the GNU General Public License
12873 +# along with this program; if not, write to the Free Software
12874 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
12879 +########################### tmp Template File #############################
12881 +type TEMPLATETYPE_rw_t;
12882 +files_type(TEMPLATETYPE_rw_t)
12886 +manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_rw_t, TEMPLATETYPE_rw_t)
12887 +manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_rw_t, TEMPLATETYPE_rw_t)
12890 +########################### Interface File #############################
12892 +########################################
12894 +## Search TEMPLATETYPE rw directories.
12896 +## <param name="domain">
12898 +## Domain allowed access.
12902 +interface(`TEMPLATETYPE_search_rw_dir',`
12904 + type TEMPLATETYPE_rw_t;
12907 + allow $1 TEMPLATETYPE_rw_t:dir search_dir_perms;
12908 + files_search_rw($1)
12911 +########################################
12913 +## Read TEMPLATETYPE rw files.
12915 +## <param name="domain">
12917 +## Domain allowed access.
12921 +interface(`TEMPLATETYPE_read_rw_files',`
12923 + type TEMPLATETYPE_rw_t;
12926 + allow $1 TEMPLATETYPE_rw_t:file read_file_perms;
12927 + allow $1 TEMPLATETYPE_rw_t:dir list_dir_perms;
12928 + files_search_rw($1)
12931 +########################################
12933 +## Manage TEMPLATETYPE rw files.
12935 +## <param name="domain">
12937 +## Domain allowed access.
12941 +interface(`TEMPLATETYPE_manage_rw_files',`
12943 + type TEMPLATETYPE_rw_t;
12946 + manage_files_pattern($1, TEMPLATETYPE_rw_t, TEMPLATETYPE_rw_t)
12949 +########################################
12951 +## Create, read, write, and delete
12952 +## TEMPLATETYPE rw dirs.
12954 +## <param name="domain">
12956 +## Domain allowed access.
12960 +interface(`TEMPLATETYPE_manage_rw_dirs',`
12962 + type TEMPLATETYPE_rw_t;
12965 + manage_dirs_pattern($1, TEMPLATETYPE_rw_t, TEMPLATETYPE_rw_t)
12970 +if_admin_types="""
12971 + type TEMPLATETYPE_rw_t;"""
12973 +if_admin_rules="""
12974 + files_search_etc($1)
12975 + admin_pattern($1, TEMPLATETYPE_rw_t)
12978 +########################### File Context ##################################
12980 +FILENAME -- gen_context(system_u:object_r:TEMPLATETYPE_rw_t,s0)
12984 +FILENAME(/.*)? gen_context(system_u:object_r:TEMPLATETYPE_rw_t,s0)
12986 diff -up policycoreutils-2.1.8/gui/templates/script.py.gui policycoreutils-2.1.8/gui/templates/script.py
12987 --- policycoreutils-2.1.8/gui/templates/script.py.gui 2011-11-07 15:12:01.918834240 -0500
12988 +++ policycoreutils-2.1.8/gui/templates/script.py 2011-11-07 15:12:01.919834241 -0500
12990 +# Copyright (C) 2007-2011 Red Hat
12991 +# see file 'COPYING' for use and warranty information
12993 +# policygentool is a tool for the initial generation of SELinux policy
12995 +# This program is free software; you can redistribute it and/or
12996 +# modify it under the terms of the GNU General Public License as
12997 +# published by the Free Software Foundation; either version 2 of
12998 +# the License, or (at your option) any later version.
13000 +# This program is distributed in the hope that it will be useful,
13001 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
13002 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13003 +# GNU General Public License for more details.
13005 +# You should have received a copy of the GNU General Public License
13006 +# along with this program; if not, write to the Free Software
13007 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13012 +########################### tmp Template File #############################
13016 +DIRNAME=`dirname $0`
13018 +USAGE="$0 [ --update ]"
13019 +if [ `id -u` != 0 ]; then
13020 +echo 'You must be root to run this script'
13024 +if [ $# -eq 1 ]; then
13025 + if [ "$1" = "--update" ] ; then
13026 + time=`ls -l --time-style="+%x %X" TEMPLATEFILE.te | awk '{ printf "%s %s", $6, $7 }'`
13027 + rules=`ausearch --start $time -m avc --raw -se TEMPLATETYPE`
13028 + if [ x"$rules" != "x" ] ; then
13029 + echo "Found avc's to update policy with"
13030 + echo -e "$rules" | audit2allow -R
13031 + echo "Do you want these changes added to policy [y/n]?"
13033 + if [ "$ANS" = "y" -o "$ANS" = "Y" ] ; then
13034 + echo "Updating policy"
13035 + echo -e "$rules" | audit2allow -R >> TEMPLATEFILE.te
13036 + # Fall though and rebuild policy
13041 + echo "No new avcs found"
13048 +elif [ $# -ge 2 ] ; then
13053 +echo "Building and Loading Policy"
13055 +make -f /usr/share/selinux/devel/Makefile || exit
13056 +/usr/sbin/semodule -i TEMPLATEFILE.pp
13061 +# Fixing the file context on FILENAME
13062 +/sbin/restorecon -F -R -v FILENAME
13066 +# Adding SELinux tcp port to port PORTNUM
13067 +/usr/sbin/semanage port -a -t TEMPLATETYPE_port_t -p tcp PORTNUM
13071 +# Adding SELinux udp port to port PORTNUM
13072 +/usr/sbin/semanage port -a -t TEMPLATETYPE_port_t -p udp PORTNUM
13076 +# Adding SELinux user TEMPLATETYPE_u
13077 +/usr/sbin/semanage user -a -R "TEMPLATETYPE_rROLES" TEMPLATETYPE_u
13081 +# Adding roles to SELinux user TEMPLATETYPE_u
13082 +/usr/sbin/semanage user -m -R "TEMPLATETYPE_rROLES" TEMPLATETYPE_u
13086 +# Adding roles to SELinux user USER
13087 +/usr/sbin/semanage user -m -R +TEMPLATETYPE_r USER
13090 +min_login_user_default_context="""\
13091 +if [ ! -f /etc/selinux/targeted/contexts/users/TEMPLATETYPE_u ]; then
13092 +cat > /etc/selinux/targeted/contexts/users/TEMPLATETYPE_u << _EOF
13093 +TEMPLATETYPE_r:TEMPLATETYPE_t:s0 TEMPLATETYPE_r:TEMPLATETYPE_t
13094 +system_r:crond_t TEMPLATETYPE_r:TEMPLATETYPE_t
13095 +system_r:initrc_su_t TEMPLATETYPE_r:TEMPLATETYPE_t
13096 +system_r:local_login_t TEMPLATETYPE_r:TEMPLATETYPE_t
13097 +system_r:remote_login_t TEMPLATETYPE_r:TEMPLATETYPE_t
13098 +system_r:sshd_t TEMPLATETYPE_r:TEMPLATETYPE_t
13103 +x_login_user_default_context="""\
13104 +if [ ! -f /etc/selinux/targeted/contexts/users/TEMPLATETYPE_u ]; then
13105 +cat > /etc/selinux/targeted/contexts/users/TEMPLATETYPE_u << _EOF
13106 +TEMPLATETYPE_r:TEMPLATETYPE_t TEMPLATETYPE_r:TEMPLATETYPE_t
13107 +system_r:crond_t TEMPLATETYPE_r:TEMPLATETYPE_t
13108 +system_r:initrc_su_t TEMPLATETYPE_r:TEMPLATETYPE_t
13109 +system_r:local_login_t TEMPLATETYPE_r:TEMPLATETYPE_t
13110 +system_r:remote_login_t TEMPLATETYPE_r:TEMPLATETYPE_t
13111 +system_r:sshd_t TEMPLATETYPE_r:TEMPLATETYPE_t
13112 +system_r:xdm_t TEMPLATETYPE_r:TEMPLATETYPE_t
13116 diff -up policycoreutils-2.1.8/gui/templates/semodule.py.gui policycoreutils-2.1.8/gui/templates/semodule.py
13117 --- policycoreutils-2.1.8/gui/templates/semodule.py.gui 2011-11-07 15:12:01.919834241 -0500
13118 +++ policycoreutils-2.1.8/gui/templates/semodule.py 2011-11-07 15:12:01.919834241 -0500
13120 +# Copyright (C) 2007-2011 Red Hat
13121 +# see file 'COPYING' for use and warranty information
13123 +# policygentool is a tool for the initial generation of SELinux policy
13125 +# This program is free software; you can redistribute it and/or
13126 +# modify it under the terms of the GNU General Public License as
13127 +# published by the Free Software Foundation; either version 2 of
13128 +# the License, or (at your option) any later version.
13130 +# This program is distributed in the hope that it will be useful,
13131 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
13132 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13133 +# GNU General Public License for more details.
13135 +# You should have received a copy of the GNU General Public License
13136 +# along with this program; if not, write to the Free Software
13137 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13142 +########################### tmp Template File #############################
13145 +make -f /usr/share/selinux/devel/Makefile
13146 +semodule -i TEMPLATETYPE.pp
13150 +restorecon -R -v FILENAME
13154 +semanage ports -a -t TEMPLATETYPE_port_t -p tcp PORTNUM
13158 +semanage ports -a -t TEMPLATETYPE_port_t -p udp PORTNUM
13161 diff -up policycoreutils-2.1.8/gui/templates/tmp.py.gui policycoreutils-2.1.8/gui/templates/tmp.py
13162 --- policycoreutils-2.1.8/gui/templates/tmp.py.gui 2011-11-07 15:12:01.919834241 -0500
13163 +++ policycoreutils-2.1.8/gui/templates/tmp.py 2011-11-07 15:12:01.920834242 -0500
13165 +# Copyright (C) 2007-2011 Red Hat
13166 +# see file 'COPYING' for use and warranty information
13168 +# policygentool is a tool for the initial generation of SELinux policy
13170 +# This program is free software; you can redistribute it and/or
13171 +# modify it under the terms of the GNU General Public License as
13172 +# published by the Free Software Foundation; either version 2 of
13173 +# the License, or (at your option) any later version.
13175 +# This program is distributed in the hope that it will be useful,
13176 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
13177 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13178 +# GNU General Public License for more details.
13180 +# You should have received a copy of the GNU General Public License
13181 +# along with this program; if not, write to the Free Software
13182 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13186 +########################### tmp Template File #############################
13189 +type TEMPLATETYPE_tmp_t;
13190 +files_tmp_file(TEMPLATETYPE_tmp_t)
13194 +manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
13195 +manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
13196 +files_tmp_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_tmp_t, { dir file })
13200 +########################################
13202 +## Do not audit attempts to read,
13203 +## TEMPLATETYPE tmp files
13205 +## <param name="domain">
13207 +## Domain to not audit.
13211 +interface(`TEMPLATETYPE_dontaudit_read_tmp_files',`
13213 + type TEMPLATETYPE_tmp_t;
13216 + dontaudit $1 TEMPLATETYPE_tmp_t:file read_file_perms;
13219 +########################################
13221 +## Read TEMPLATETYPE tmp files
13223 +## <param name="domain">
13225 +## Domain allowed access.
13229 +interface(`TEMPLATETYPE_read_tmp_files',`
13231 + type TEMPLATETYPE_tmp_t;
13234 + files_search_tmp($1)
13235 + allow $1 TEMPLATETYPE_tmp_t:file read_file_perms;
13238 +########################################
13240 +## Manage TEMPLATETYPE tmp files
13242 +## <param name="domain">
13244 +## Domain allowed access.
13248 +interface(`TEMPLATETYPE_manage_tmp',`
13250 + type TEMPLATETYPE_tmp_t;
13253 + files_search_tmp($1)
13254 + manage_dirs_pattern($1, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
13255 + manage_files_pattern($1, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
13256 + manage_lnk_files_pattern($1, TEMPLATETYPE_tmp_t, TEMPLATETYPE_tmp_t)
13260 +if_admin_types="""
13261 + type TEMPLATETYPE_tmp_t;"""
13263 +if_admin_rules="""
13264 + files_search_tmp($1)
13265 + admin_pattern($1, TEMPLATETYPE_tmp_t)
13267 diff -up policycoreutils-2.1.8/gui/templates/user.py.gui policycoreutils-2.1.8/gui/templates/user.py
13268 --- policycoreutils-2.1.8/gui/templates/user.py.gui 2011-11-07 15:12:01.920834242 -0500
13269 +++ policycoreutils-2.1.8/gui/templates/user.py 2011-11-07 15:12:01.920834242 -0500
13271 +# Copyright (C) 2007-2011 Red Hat
13272 +# see file 'COPYING' for use and warranty information
13274 +# policygentool is a tool for the initial generation of SELinux policy
13276 +# This program is free software; you can redistribute it and/or
13277 +# modify it under the terms of the GNU General Public License as
13278 +# published by the Free Software Foundation; either version 2 of
13279 +# the License, or (at your option) any later version.
13281 +# This program is distributed in the hope that it will be useful,
13282 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
13283 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13284 +# GNU General Public License for more details.
13286 +# You should have received a copy of the GNU General Public License
13287 +# along with this program; if not, write to the Free Software
13288 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13292 +########################### Type Enforcement File #############################
13294 +te_login_user_types="""\
13295 +policy_module(TEMPLATETYPE, 1.0.0)
13297 +########################################
13302 +userdom_unpriv_user_template(TEMPLATETYPE)
13305 +te_admin_user_types="""\
13306 +policy_module(TEMPLATETYPE, 1.0.0)
13308 +########################################
13313 +userdom_admin_user_template(TEMPLATETYPE)
13316 +te_min_login_user_types="""\
13317 +policy_module(TEMPLATETYPE, 1.0.0)
13319 +########################################
13324 +userdom_restricted_user_template(TEMPLATETYPE)
13327 +te_x_login_user_types="""\
13328 +policy_module(TEMPLATETYPE, 1.0.0)
13330 +########################################
13335 +userdom_restricted_xwindows_user_template(TEMPLATETYPE)
13338 +te_existing_user_types="""\
13339 +policy_module(myTEMPLATETYPE, 1.0.0)
13342 + type TEMPLATETYPE_t, TEMPLATETYPE_devpts_t;
13343 + role TEMPLATETYPE_r;
13348 +te_root_user_types="""\
13349 +policy_module(TEMPLATETYPE, 1.0.0)
13351 +########################################
13356 +userdom_base_user_template(TEMPLATETYPE)
13359 +te_login_user_rules="""\
13361 +########################################
13363 +# TEMPLATETYPE local policy
13368 +te_existing_user_rules="""\
13370 +########################################
13372 +# TEMPLATETYPE customized policy
13377 +te_x_login_user_rules="""\
13379 +########################################
13381 +# TEMPLATETYPE local policy
13385 +te_root_user_rules="""\
13387 +########################################
13389 +# TEMPLATETYPE local policy
13393 +te_transition_rules="""
13395 + APPLICATION_role(TEMPLATETYPE_r, TEMPLATETYPE_t)
13399 +te_user_trans_rules="""
13405 + TEMPLATETYPE_role_change(USER_r)
13409 +te_admin_rules="""
13410 +allow TEMPLATETYPE_t self:capability { dac_override dac_read_search kill sys_ptrace sys_nice };
13411 +files_dontaudit_search_all_dirs(TEMPLATETYPE_t)
13413 +selinux_get_enforce_mode(TEMPLATETYPE_t)
13414 +seutil_domtrans_setfiles(TEMPLATETYPE_t)
13415 +seutil_search_default_contexts(TEMPLATETYPE_t)
13417 +logging_send_syslog_msg(TEMPLATETYPE_t)
13419 +kernel_read_system_state(TEMPLATETYPE_t)
13421 +domain_dontaudit_search_all_domains_state(TEMPLATETYPE_t)
13422 +domain_dontaudit_ptrace_all_domains(TEMPLATETYPE_t)
13424 +userdom_dontaudit_search_admin_dir(TEMPLATETYPE_t)
13425 +userdom_dontaudit_search_user_home_dirs(TEMPLATETYPE_t)
13427 +bool TEMPLATETYPE_read_user_files false;
13428 +bool TEMPLATETYPE_manage_user_files false;
13430 +if (TEMPLATETYPE_read_user_files) {
13431 + userdom_read_user_home_content_files(TEMPLATETYPE_t)
13432 + userdom_read_user_tmp_files(TEMPLATETYPE_t)
13435 +if (TEMPLATETYPE_manage_user_files) {
13436 + userdom_manage_user_home_content(TEMPLATETYPE_t)
13437 + userdom_manage_user_tmp_files(TEMPLATETYPE_t)
13442 +te_admin_trans_rules="""
13447 +allow USER_r TEMPLATETYPE_r;
13450 +te_admin_domain_rules="""
13452 + APPLICATION_admin(TEMPLATETYPE_t, TEMPLATETYPE_r)
13456 +te_roles_rules="""
13462 + allow TEMPLATETYPE_r ROLE_r;
13468 + sudo_role_template(TEMPLATETYPE, TEMPLATETYPE_r, TEMPLATETYPE_t)
13472 +te_newrole_rules="""
13473 +seutil_run_newrole(TEMPLATETYPE_t, TEMPLATETYPE_r)
13475 diff -up policycoreutils-2.1.8/gui/templates/var_cache.py.gui policycoreutils-2.1.8/gui/templates/var_cache.py
13476 --- policycoreutils-2.1.8/gui/templates/var_cache.py.gui 2011-11-07 15:12:01.920834242 -0500
13477 +++ policycoreutils-2.1.8/gui/templates/var_cache.py 2011-11-07 15:12:01.921834243 -0500
13479 +# Copyright (C) 2007-2011 Red Hat
13480 +# see file 'COPYING' for use and warranty information
13482 +# policygentool is a tool for the initial generation of SELinux policy
13484 +# This program is free software; you can redistribute it and/or
13485 +# modify it under the terms of the GNU General Public License as
13486 +# published by the Free Software Foundation; either version 2 of
13487 +# the License, or (at your option) any later version.
13489 +# This program is distributed in the hope that it will be useful,
13490 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
13491 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13492 +# GNU General Public License for more details.
13494 +# You should have received a copy of the GNU General Public License
13495 +# along with this program; if not, write to the Free Software
13496 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13500 +########################### cache Template File #############################
13502 +########################### Type Enforcement File #############################
13504 +type TEMPLATETYPE_cache_t;
13505 +files_type(TEMPLATETYPE_cache_t)
13508 +manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
13509 +manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
13510 +manage_lnk_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
13511 +files_var_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_cache_t, { dir file })
13514 +########################### Interface File #############################
13516 +########################################
13518 +## Search TEMPLATETYPE cache directories.
13520 +## <param name="domain">
13522 +## Domain allowed access.
13526 +interface(`TEMPLATETYPE_search_cache',`
13528 + type TEMPLATETYPE_cache_t;
13531 + allow $1 TEMPLATETYPE_cache_t:dir search_dir_perms;
13532 + files_search_var($1)
13535 +########################################
13537 +## Read TEMPLATETYPE cache files.
13539 +## <param name="domain">
13541 +## Domain allowed access.
13545 +interface(`TEMPLATETYPE_read_cache_files',`
13547 + type TEMPLATETYPE_cache_t;
13550 + files_search_var($1)
13551 + read_files_pattern($1, TEMPLATETYPE_cache_t TEMPLATETYPE_cache_t)
13554 +########################################
13556 +## Create, read, write, and delete
13557 +## TEMPLATETYPE cache files.
13559 +## <param name="domain">
13561 +## Domain allowed access.
13565 +interface(`TEMPLATETYPE_manage_cache_files',`
13567 + type TEMPLATETYPE_cache_t;
13570 + files_search_var($1)
13571 + manage_files_pattern($1, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
13574 +########################################
13576 +## Manage TEMPLATETYPE cache dirs.
13578 +## <param name="domain">
13580 +## Domain allowed access.
13584 +interface(`TEMPLATETYPE_manage_cache_dirs',`
13586 + type TEMPLATETYPE_cache_t;
13589 + files_search_var($1)
13590 + manage_dirs_pattern($1, TEMPLATETYPE_cache_t, TEMPLATETYPE_cache_t)
13595 +if_admin_types="""
13596 + type TEMPLATETYPE_cache_t;"""
13598 +if_admin_rules="""
13599 + files_search_var($1)
13600 + admin_pattern($1, TEMPLATETYPE_cache_t)
13603 +########################### File Context ##################################
13605 +FILENAME -- gen_context(system_u:object_r:TEMPLATETYPE_cache_t,s0)
13609 +FILENAME(/.*)? gen_context(system_u:object_r:TEMPLATETYPE_cache_t,s0)
13611 diff -up policycoreutils-2.1.8/gui/templates/var_lib.py.gui policycoreutils-2.1.8/gui/templates/var_lib.py
13612 --- policycoreutils-2.1.8/gui/templates/var_lib.py.gui 2011-11-07 15:12:01.921834243 -0500
13613 +++ policycoreutils-2.1.8/gui/templates/var_lib.py 2011-11-07 15:12:01.921834243 -0500
13615 +# Copyright (C) 2007-2011 Red Hat
13616 +# see file 'COPYING' for use and warranty information
13618 +# policygentool is a tool for the initial generation of SELinux policy
13620 +# This program is free software; you can redistribute it and/or
13621 +# modify it under the terms of the GNU General Public License as
13622 +# published by the Free Software Foundation; either version 2 of
13623 +# the License, or (at your option) any later version.
13625 +# This program is distributed in the hope that it will be useful,
13626 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
13627 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13628 +# GNU General Public License for more details.
13630 +# You should have received a copy of the GNU General Public License
13631 +# along with this program; if not, write to the Free Software
13632 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13636 +########################### var_lib Template File #############################
13638 +########################### Type Enforcement File #############################
13640 +type TEMPLATETYPE_var_lib_t;
13641 +files_type(TEMPLATETYPE_var_lib_t)
13644 +manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
13645 +manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
13646 +files_var_lib_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t, { dir file })
13649 +te_stream_rules="""\
13650 +allow TEMPLATETYPE_t TEMPLATETYPE_var_lib_t:sock_file manage_sock_file_perms;
13651 +files_var_lib_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t, sock_file)
13655 +########################### Interface File #############################
13657 +########################################
13659 +## Search TEMPLATETYPE lib directories.
13661 +## <param name="domain">
13663 +## Domain allowed access.
13667 +interface(`TEMPLATETYPE_search_lib',`
13669 + type TEMPLATETYPE_var_lib_t;
13672 + allow $1 TEMPLATETYPE_var_lib_t:dir search_dir_perms;
13673 + files_search_var_lib($1)
13676 +########################################
13678 +## Read TEMPLATETYPE lib files.
13680 +## <param name="domain">
13682 +## Domain allowed access.
13686 +interface(`TEMPLATETYPE_read_lib_files',`
13688 + type TEMPLATETYPE_var_lib_t;
13691 + files_search_var_lib($1)
13692 + read_files_pattern($1, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
13695 +########################################
13697 +## Manage TEMPLATETYPE lib files.
13699 +## <param name="domain">
13701 +## Domain allowed access.
13705 +interface(`TEMPLATETYPE_manage_lib_files',`
13707 + type TEMPLATETYPE_var_lib_t;
13710 + files_search_var_lib($1)
13711 + manage_files_pattern($1, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
13714 +########################################
13716 +## Manage TEMPLATETYPE lib directories.
13718 +## <param name="domain">
13720 +## Domain allowed access.
13724 +interface(`TEMPLATETYPE_manage_lib_dirs',`
13726 + type TEMPLATETYPE_var_lib_t;
13729 + files_search_var_lib($1)
13730 + manage_dirs_pattern($1, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
13735 +if_stream_rules="""
13736 +########################################
13738 +## Connect to TEMPLATETYPE over an unix stream socket.
13740 +## <param name="domain">
13742 +## Domain allowed access.
13746 +interface(`TEMPLATETYPE_stream_connect',`
13748 + type TEMPLATETYPE_t, TEMPLATETYPE_var_lib_t;
13751 + stream_connect_pattern($1, TEMPLATETYPE_var_lib_t, TEMPLATETYPE_var_lib_t)
13755 +if_admin_types="""
13756 + type TEMPLATETYPE_var_lib_t;"""
13758 +if_admin_rules="""
13759 + files_search_var_lib($1)
13760 + admin_pattern($1, TEMPLATETYPE_var_lib_t)
13763 +########################### File Context ##################################
13765 +FILENAME -- gen_context(system_u:object_r:TEMPLATETYPE_var_lib_t,s0)
13769 +FILENAME -s gen_context(system_u:object_r:TEMPLATETYPE_var_lib_t,s0)
13773 +FILENAME(/.*)? gen_context(system_u:object_r:TEMPLATETYPE_var_lib_t,s0)
13775 diff -up policycoreutils-2.1.8/gui/templates/var_log.py.gui policycoreutils-2.1.8/gui/templates/var_log.py
13776 --- policycoreutils-2.1.8/gui/templates/var_log.py.gui 2011-11-07 15:12:01.921834243 -0500
13777 +++ policycoreutils-2.1.8/gui/templates/var_log.py 2011-11-07 15:12:01.922834244 -0500
13779 +# Copyright (C) 2007-2011 Red Hat
13780 +# see file 'COPYING' for use and warranty information
13782 +# policygentool is a tool for the initial generation of SELinux policy
13784 +# This program is free software; you can redistribute it and/or
13785 +# modify it under the terms of the GNU General Public License as
13786 +# published by the Free Software Foundation; either version 2 of
13787 +# the License, or (at your option) any later version.
13789 +# This program is distributed in the hope that it will be useful,
13790 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
13791 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13792 +# GNU General Public License for more details.
13794 +# You should have received a copy of the GNU General Public License
13795 +# along with this program; if not, write to the Free Software
13796 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13800 +########################### var_log Template File #############################
13802 +########################### Type Enforcement File #############################
13804 +type TEMPLATETYPE_log_t;
13805 +logging_log_file(TEMPLATETYPE_log_t)
13809 +manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
13810 +manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
13811 +logging_log_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_log_t, { dir file })
13814 +########################### Interface File #############################
13816 +########################################
13818 +## Read TEMPLATETYPE's log files.
13820 +## <param name="domain">
13822 +## Domain allowed access.
13827 +interface(`TEMPLATETYPE_read_log',`
13829 + type TEMPLATETYPE_log_t;
13832 + logging_search_logs($1)
13833 + read_files_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
13836 +########################################
13838 +## Append to TEMPLATETYPE log files.
13840 +## <param name="domain">
13842 +## Domain allowed access.
13846 +interface(`TEMPLATETYPE_append_log',`
13848 + type TEMPLATETYPE_log_t;
13851 + logging_search_logs($1)
13852 + append_files_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
13855 +########################################
13857 +## Manage TEMPLATETYPE log files
13859 +## <param name="domain">
13861 +## Domain allowed access.
13865 +interface(`TEMPLATETYPE_manage_log',`
13867 + type TEMPLATETYPE_log_t;
13870 + logging_search_logs($1)
13871 + manage_dirs_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
13872 + manage_files_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
13873 + manage_lnk_files_pattern($1, TEMPLATETYPE_log_t, TEMPLATETYPE_log_t)
13877 +if_admin_types="""
13878 + type TEMPLATETYPE_log_t;"""
13880 +if_admin_rules="""
13881 + logging_search_logs($1)
13882 + admin_pattern($1, TEMPLATETYPE_log_t)
13885 +########################### File Context ##################################
13887 +FILENAME -- gen_context(system_u:object_r:TEMPLATETYPE_log_t,s0)
13891 +FILENAME(/.*)? gen_context(system_u:object_r:TEMPLATETYPE_log_t,s0)
13893 diff -up policycoreutils-2.1.8/gui/templates/var_run.py.gui policycoreutils-2.1.8/gui/templates/var_run.py
13894 --- policycoreutils-2.1.8/gui/templates/var_run.py.gui 2011-11-07 15:12:01.922834244 -0500
13895 +++ policycoreutils-2.1.8/gui/templates/var_run.py 2011-11-07 15:12:01.922834244 -0500
13897 +# Copyright (C) 2007-2011 Red Hat
13898 +# see file 'COPYING' for use and warranty information
13900 +# policygentool is a tool for the initial generation of SELinux policy
13902 +# This program is free software; you can redistribute it and/or
13903 +# modify it under the terms of the GNU General Public License as
13904 +# published by the Free Software Foundation; either version 2 of
13905 +# the License, or (at your option) any later version.
13907 +# This program is distributed in the hope that it will be useful,
13908 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
13909 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13910 +# GNU General Public License for more details.
13912 +# You should have received a copy of the GNU General Public License
13913 +# along with this program; if not, write to the Free Software
13914 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13918 +########################### var_run Template File #############################
13921 +type TEMPLATETYPE_var_run_t;
13922 +files_pid_file(TEMPLATETYPE_var_run_t)
13926 +manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_var_run_t, TEMPLATETYPE_var_run_t)
13927 +manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_var_run_t, TEMPLATETYPE_var_run_t)
13928 +files_pid_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_var_run_t, { dir file })
13931 +te_stream_rules="""
13932 +allow TEMPLATETYPE_t TEMPLATETYPE_var_run_t:sock_file manage_sock_file_perms;
13933 +files_pid_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_var_run_t, sock_file)
13937 +########################################
13939 +## Read TEMPLATETYPE PID files.
13941 +## <param name="domain">
13943 +## Domain allowed access.
13947 +interface(`TEMPLATETYPE_read_pid_files',`
13949 + type TEMPLATETYPE_var_run_t;
13952 + files_search_pids($1)
13953 + allow $1 TEMPLATETYPE_var_run_t:file read_file_perms;
13958 +if_stream_rules="""\
13959 +########################################
13961 +## Connect to TEMPLATETYPE over an unix stream socket.
13963 +## <param name="domain">
13965 +## Domain allowed access.
13969 +interface(`TEMPLATETYPE_stream_connect',`
13971 + type TEMPLATETYPE_t, TEMPLATETYPE_var_run_t;
13974 + files_search_pids($1)
13975 + stream_connect_pattern($1, TEMPLATETYPE_var_run_t, TEMPLATETYPE_var_run_t, TEMPLATETYPE_t)
13979 +if_admin_types="""
13980 + type TEMPLATETYPE_var_run_t;"""
13982 +if_admin_rules="""
13983 + files_search_pids($1)
13984 + admin_pattern($1, TEMPLATETYPE_var_run_t)
13988 +FILENAME -- gen_context(system_u:object_r:TEMPLATETYPE_var_run_t,s0)
13992 +FILENAME -s gen_context(system_u:object_r:TEMPLATETYPE_var_run_t,s0)
13996 +FILENAME(/.*)? gen_context(system_u:object_r:TEMPLATETYPE_var_run_t,s0)
13998 diff -up policycoreutils-2.1.8/gui/templates/var_spool.py.gui policycoreutils-2.1.8/gui/templates/var_spool.py
13999 --- policycoreutils-2.1.8/gui/templates/var_spool.py.gui 2011-11-07 15:12:01.922834244 -0500
14000 +++ policycoreutils-2.1.8/gui/templates/var_spool.py 2011-11-07 15:12:01.923834245 -0500
14002 +# Copyright (C) 2007-2011 Red Hat
14003 +# see file 'COPYING' for use and warranty information
14005 +# policygentool is a tool for the initial generation of SELinux policy
14007 +# This program is free software; you can redistribute it and/or
14008 +# modify it under the terms of the GNU General Public License as
14009 +# published by the Free Software Foundation; either version 2 of
14010 +# the License, or (at your option) any later version.
14012 +# This program is distributed in the hope that it will be useful,
14013 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
14014 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14015 +# GNU General Public License for more details.
14017 +# You should have received a copy of the GNU General Public License
14018 +# along with this program; if not, write to the Free Software
14019 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
14023 +########################### var_spool Template File #############################
14025 +########################### Type Enforcement File #############################
14027 +type TEMPLATETYPE_spool_t;
14028 +files_type(TEMPLATETYPE_spool_t)
14031 +manage_dirs_pattern(TEMPLATETYPE_t, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
14032 +manage_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
14033 +manage_lnk_files_pattern(TEMPLATETYPE_t, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
14034 +files_spool_filetrans(TEMPLATETYPE_t, TEMPLATETYPE_spool_t, { dir file })
14037 +########################### Interface File #############################
14039 +########################################
14041 +## Search TEMPLATETYPE spool directories.
14043 +## <param name="domain">
14045 +## Domain allowed access.
14049 +interface(`TEMPLATETYPE_search_spool',`
14051 + type TEMPLATETYPE_spool_t;
14054 + allow $1 TEMPLATETYPE_spool_t:dir search_dir_perms;
14055 + files_search_spool($1)
14058 +########################################
14060 +## Read TEMPLATETYPE spool files.
14062 +## <param name="domain">
14064 +## Domain allowed access.
14068 +interface(`TEMPLATETYPE_read_spool_files',`
14070 + type TEMPLATETYPE_spool_t;
14073 + files_search_spool($1)
14074 + read_files_pattern($1, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
14077 +########################################
14079 +## Manage TEMPLATETYPE spool files.
14081 +## <param name="domain">
14083 +## Domain allowed access.
14087 +interface(`TEMPLATETYPE_manage_spool_files',`
14089 + type TEMPLATETYPE_spool_t;
14092 + files_search_spool($1)
14093 + manage_files_pattern($1, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
14096 +########################################
14098 +## Manage TEMPLATETYPE spool dirs.
14100 +## <param name="domain">
14102 +## Domain allowed access.
14106 +interface(`TEMPLATETYPE_manage_spool_dirs',`
14108 + type TEMPLATETYPE_spool_t;
14111 + files_search_spool($1)
14112 + manage_dirs_pattern($1, TEMPLATETYPE_spool_t, TEMPLATETYPE_spool_t)
14117 +if_admin_types="""
14118 + type TEMPLATETYPE_spool_t;"""
14120 +if_admin_rules="""
14121 + files_search_spool($1)
14122 + admin_pattern($1, TEMPLATETYPE_spool_t)
14125 +########################### File Context ##################################
14127 +FILENAME -- gen_context(system_u:object_r:TEMPLATETYPE_spool_t,s0)
14131 +FILENAME(/.*)? gen_context(system_u:object_r:TEMPLATETYPE_spool_t,s0)
14133 diff -up policycoreutils-2.1.8/gui/usersPage.py.gui policycoreutils-2.1.8/gui/usersPage.py
14134 --- policycoreutils-2.1.8/gui/usersPage.py.gui 2011-11-07 15:12:01.923834245 -0500
14135 +++ policycoreutils-2.1.8/gui/usersPage.py 2011-11-07 15:12:01.923834245 -0500
14137 +## usersPage.py - show selinux mappings
14138 +## Copyright (C) 2006,2007,2008 Red Hat, Inc.
14140 +## This program is free software; you can redistribute it and/or modify
14141 +## it under the terms of the GNU General Public License as published by
14142 +## the Free Software Foundation; either version 2 of the License, or
14143 +## (at your option) any later version.
14145 +## This program is distributed in the hope that it will be useful,
14146 +## but WITHOUT ANY WARRANTY; without even the implied warranty of
14147 +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14148 +## GNU General Public License for more details.
14150 +## You should have received a copy of the GNU General Public License
14151 +## along with this program; if not, write to the Free Software
14152 +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
14154 +## Author: Dan Walsh
14163 +from semanagePage import *;
14168 +PROGNAME="policycoreutils"
14170 +gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
14171 +gettext.textdomain(PROGNAME)
14173 + gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
14175 + import __builtin__
14176 + __builtin__.__dict__['_'] = unicode
14178 +class usersPage(semanagePage):
14179 + def __init__(self, xml):
14180 + semanagePage.__init__(self, xml, "users", _("SELinux User"))
14182 + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING)
14183 + self.view.set_model(self.store)
14184 + self.store.set_sort_column_id(0, gtk.SORT_ASCENDING)
14186 + col = gtk.TreeViewColumn(_("SELinux\nUser"), gtk.CellRendererText(), text = 0)
14187 + col.set_sort_column_id(0)
14188 + col.set_resizable(True)
14189 + self.view.append_column(col)
14191 + col = gtk.TreeViewColumn(_("MLS/\nMCS Range"), gtk.CellRendererText(), text = 1)
14192 + col.set_resizable(True)
14193 + self.view.append_column(col)
14195 + col = gtk.TreeViewColumn(_("SELinux Roles"), gtk.CellRendererText(), text = 2)
14196 + col.set_resizable(True)
14197 + self.view.append_column(col)
14200 + self.selinuxUserEntry = xml.get_widget("selinuxUserEntry")
14201 + self.mlsRangeEntry = xml.get_widget("mlsRangeEntry")
14202 + self.selinuxRolesEntry = xml.get_widget("selinuxRolesEntry")
14204 + def load(self, filter = ""):
14205 + self.filter=filter
14206 + self.user = seobject.seluserRecords()
14207 + dict = self.user.get_all()
14208 + keys = dict.keys()
14210 + self.store.clear()
14212 + range = seobject.translate(dict[k][2])
14213 + if not (self.match(k, filter) or self.match(dict[k][0], filter) or self.match(range, filter) or self.match(dict[k][3], filter)):
14216 + iter = self.store.append()
14217 + self.store.set_value(iter, 0, k)
14218 + self.store.set_value(iter, 1, range)
14219 + self.store.set_value(iter, 2, dict[k][3])
14220 + self.view.get_selection().select_path ((0,))
14222 + def delete(self):
14223 + if semanagePage.delete(self) == gtk.RESPONSE_NO:
14226 + def dialogInit(self):
14227 + store, iter = self.view.get_selection().get_selected()
14228 + self.selinuxUserEntry.set_text(store.get_value(iter, 0))
14229 + self.selinuxUserEntry.set_sensitive(False)
14230 + self.mlsRangeEntry.set_text(store.get_value(iter, 1))
14231 + self.selinuxRolesEntry.set_text(store.get_value(iter, 2))
14233 + def dialogClear(self):
14234 + self.selinuxUserEntry.set_text("")
14235 + self.selinuxUserEntry.set_sensitive(True)
14236 + self.mlsRangeEntry.set_text("s0")
14237 + self.selinuxRolesEntry.set_text("")
14240 + user = self.selinuxUserEntry.get_text()
14241 + range = self.mlsRangeEntry.get_text()
14242 + roles = self.selinuxRolesEntry.get_text()
14245 + (rc, out) = commands.getstatusoutput("semanage user -a -R '%s' -r %s %s" % (roles, range, user))
14250 + iter = self.store.append()
14251 + self.store.set_value(iter, 0, user)
14252 + self.store.set_value(iter, 1, range)
14253 + self.store.set_value(iter, 2, roles)
14255 + def modify(self):
14256 + user = self.selinuxUserEntry.get_text()
14257 + range = self.mlsRangeEntry.get_text()
14258 + roles = self.selinuxRolesEntry.get_text()
14261 + (rc, out) = commands.getstatusoutput("semanage user -m -R '%s' -r %s %s" % (roles, range, user))
14267 + self.load(self.filter)
14269 + def delete(self):
14270 + store, iter = self.view.get_selection().get_selected()
14272 + user=store.get_value(iter, 0)
14273 + if user == "root" or user == "user_u":
14274 + raise ValueError(_("SELinux user '%s' is required") % user)
14277 + (rc, out) = commands.getstatusoutput("semanage user -d %s" % user)
14282 + store.remove(iter)
14283 + self.view.get_selection().select_path ((0,))
14284 + except ValueError, e:
14285 + self.error(e.args[0])