#!/usr/bin/python2 # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # import os import pwd import util class RBACprofile: def __init__(self, name = None): # Filtering through the pwd module is beneficial because # it will raise a KeyError exception for an invalid # name argument if name == None: euid = os.geteuid() pwnam = pwd.getpwuid(euid) self.uid = euid self.name = pwnam[0] else: pwnam = pwd.getpwnam(name) self.name = pwnam[0] self.uid = pwnam[2] self.profiles = [] self.auths = [] def has_profile(self, profile): # root is all powerful if self.uid == 0: return True else: return False def has_auth(self, auth): # root is all powerful if self.uid == 0: return True else: return False if __name__ == "__main__": rbac = RBACprofile() print rbac.name print rbac.uid print rbac.profiles print rbac.auths