/usr/lib64/python3.9/site-packages/setools/__pycache__
NameSizeModeActions
boolquery.cpython-39.opt-1.pyc21010644editdlrm
boolquery.cpython-39.pyc21010644editdlrm
boundsquery.cpython-39.opt-1.pyc18830644editdlrm
boundsquery.cpython-39.pyc18830644editdlrm
categoryquery.cpython-39.opt-1.pyc16820644editdlrm
categoryquery.cpython-39.pyc16820644editdlrm
commonquery.cpython-39.opt-1.pyc19120644editdlrm
commonquery.cpython-39.pyc19120644editdlrm
constraintquery.cpython-39.opt-1.pyc47580644editdlrm
constraintquery.cpython-39.pyc47580644editdlrm
defaultquery.cpython-39.opt-1.pyc23630644editdlrm
defaultquery.cpython-39.pyc23630644editdlrm
descriptors.cpython-39.opt-1.pyc101200644editdlrm
descriptors.cpython-39.pyc103130644editdlrm
devicetreeconquery.cpython-39.opt-1.pyc25900644editdlrm
devicetreeconquery.cpython-39.pyc25900644editdlrm
dta.cpython-39.opt-1.pyc156130644editdlrm
dta.cpython-39.pyc156130644editdlrm
exception.cpython-39.opt-1.pyc93230644editdlrm
exception.cpython-39.pyc93230644editdlrm
fsusequery.cpython-39.opt-1.pyc30420644editdlrm
fsusequery.cpython-39.pyc30420644editdlrm
genfsconquery.cpython-39.opt-1.pyc32760644editdlrm
genfsconquery.cpython-39.pyc32760644editdlrm
ibendportconquery.cpython-39.opt-1.pyc33510644editdlrm
ibendportconquery.cpython-39.pyc33510644editdlrm
ibpkeyconquery.cpython-39.opt-1.pyc47630644editdlrm
ibpkeyconquery.cpython-39.pyc47630644editdlrm
infoflow.cpython-39.opt-1.pyc130470644editdlrm
infoflow.cpython-39.pyc130470644editdlrm
initsidquery.cpython-39.opt-1.pyc26180644editdlrm
initsidquery.cpython-39.pyc26180644editdlrm
iomemconquery.cpython-39.opt-1.pyc40960644editdlrm
iomemconquery.cpython-39.pyc40960644editdlrm
ioportconquery.cpython-39.opt-1.pyc41000644editdlrm
ioportconquery.cpython-39.pyc41000644editdlrm
mixins.cpython-39.opt-1.pyc69470644editdlrm
mixins.cpython-39.pyc69470644editdlrm
mlsrulequery.cpython-39.opt-1.pyc32900644editdlrm
mlsrulequery.cpython-39.pyc32900644editdlrm
netifconquery.cpython-39.opt-1.pyc26960644editdlrm
netifconquery.cpython-39.pyc26960644editdlrm
nodeconquery.cpython-39.opt-1.pyc40320644editdlrm
nodeconquery.cpython-39.pyc40320644editdlrm
objclassquery.cpython-39.opt-1.pyc31880644editdlrm
objclassquery.cpython-39.pyc31880644editdlrm
pcideviceconquery.cpython-39.opt-1.pyc29900644editdlrm
pcideviceconquery.cpython-39.pyc29900644editdlrm
permmap.cpython-39.opt-1.pyc128200644editdlrm
permmap.cpython-39.pyc130540644editdlrm
pirqconquery.cpython-39.opt-1.pyc29120644editdlrm
pirqconquery.cpython-39.pyc29120644editdlrm
polcapquery.cpython-39.opt-1.pyc14820644editdlrm
polcapquery.cpython-39.pyc14820644editdlrm
portconquery.cpython-39.opt-1.pyc47530644editdlrm
portconquery.cpython-39.pyc47530644editdlrm
query.cpython-39.opt-1.pyc12720644editdlrm
query.cpython-39.pyc12720644editdlrm
rbacrulequery.cpython-39.opt-1.pyc43520644editdlrm
rbacrulequery.cpython-39.pyc43520644editdlrm
rolequery.cpython-39.opt-1.pyc21900644editdlrm
rolequery.cpython-39.pyc21900644editdlrm
sensitivityquery.cpython-39.opt-1.pyc24020644editdlrm
sensitivityquery.cpython-39.pyc24020644editdlrm
terulequery.cpython-39.opt-1.pyc67030644editdlrm
terulequery.cpython-39.pyc67030644editdlrm
typeattrquery.cpython-39.opt-1.pyc23520644editdlrm
typeattrquery.cpython-39.pyc23520644editdlrm
typequery.cpython-39.opt-1.pyc31460644editdlrm
typequery.cpython-39.pyc31460644editdlrm
userquery.cpython-39.opt-1.pyc40200644editdlrm
userquery.cpython-39.pyc40200644editdlrm
util.cpython-39.opt-1.pyc77230644editdlrm
util.cpython-39.pyc77230644editdlrm
__init__.cpython-39.opt-1.pyc37560644editdlrm
__init__.cpython-39.pyc37560644editdlrm
Edit: /usr/lib64/python3.9/site-packages/setools/__pycache__/permmap.cpython-39.pyc (13054B)
a qéqeÉ@ã @sþddlZddlZddlmZddlmZddlmZmZm Z m Z m Z m Z ddl Z ddlmZddlmZddlmZmZmZd ZdZd ZGd d „d e ƒZeed œdd„Zeedœdd„Zeeeeeee eeeffffZGdd„dƒZ Gdd„dƒZ!dS)éN)Ú OrderedDict)Úsuppress)ÚcastÚDictÚIterableÚ NamedTupleÚOptionalÚUnioné)Ú exception)ÚPermissionMapDescriptor)ÚAVRuleÚ SELinuxPolicyÚ TERuletype)ÚrÚwÚbÚnÚué c@s"eZdZUdZeed<eed<dS)Ú RuleWeightzDThe read and write weights for a rule, given all of its permissions.ÚreadÚwriteN)Ú__name__Ú __module__Ú __qualname__Ú__doc__ÚintÚ__annotations__©rrú5/usr/lib64/python3.9/site-packages/setools/permmap.pyrs r)ÚweightÚreturncCs(t|krtks$ntd |¡ƒ‚|S)Nz$Permission weights must be 1-10: {0})Ú MIN_WEIGHTÚ MAX_WEIGHTÚ ValueErrorÚformat)r!rrr Úvalidate_weight!sr')Ú directionr"cCs|tvrtd |¡ƒ‚|S)Nz'Invalid information flow direction: {0})ÚINFOFLOW_DIRECTIONSr%r&)r(rrr Úvalidate_direction(sr*c@sfeZdZUdZedeƒZedeƒZede ƒZ e e d<e e d<de e e e dd œd d „Ze d œd d„ZdS)ÚMappingz1A mapping for a permission in the permission map.r!r(ÚenabledÚclass_ÚpermFN)Úperm_mapÚ classnameÚ permissionÚcreater"cCs‚||_||_||_|rD||jvr,tƒ|j|<ddddœ|j||<n:||jvr^t d |¡¡‚||j|vr~t d ||¡¡‚dS)Nrr T)r(r!r,ú{0} is not mapped.z{0}:{1} is not mapped.)Z _perm_mapr-r.rr Ú UnmappedClassr&ZUnmappedPermission)Úselfr/r0r1r2rrr Ú__init__=s   þ ÿzMapping.__init__©r"cCs$|j|jkr|j|jkS|j|jkS©N)r-r.)r5Úotherrrr Ú__lt__Ts  zMapping.__lt__)F)rrrrr r'r!r*r(Úboolr,ÚstrrÚ MapStructr6r:rrrr r+3s    ÿÿ r+c@s8eZdZdZd.eeddœdd„Zedœdd„Zddœd d „Ze e dœd d „Z eddœd d„Z eddœdd„Z e edœdd„Zee e dœdd„Zeee dœdd„Zeddœdd„Zeeddœdd„Zeddœdd„Zeeddœd d!„Zedd"œd#d$„Zeed%œd&d'„Zeeedd(œd)d*„Zeeedd+œd,d-„ZdS)/Ú PermissionMapz-Permission Map for information flow analysis.N)Ú permmapfiler"cCsLt t¡|_tƒ|_||r(| |¡n t d¡}d  |j ¡}| |¡dS)ú\ Parameter: permmapfile The path to the permission map to load. Zsetoolsz{0}/setools/perm_mapN) ÚloggingZ getLoggerrÚlogrÚ_permmapÚloadÚ pkg_resourcesZget_distributionr&Úlocation)r5r?ZdistroÚpathrrr r6_s    zPermissionMap.__init__r7cCs|jSr8)Ú _permmapfile©r5rrr Ú__str__pszPermissionMap.__str__cCs8t t¡}|j|_t |j¡|_|j|_||t|ƒ<|Sr8)r>Ú__new__rBÚcopyÚdeepcopyrCrHÚid)r5ÚmemoZnewobjrrr Ú __deepcopy__ss   zPermissionMap.__deepcopy__ccs(| ¡D]}| |¡D] }|VqqdSr8)ÚclassesÚperms)r5ÚclsÚmappingrrr Ú__iter__{s zPermissionMap.__iter__c Csv|j d |¡¡t|dƒ��}d}d}d}d}|j ¡t|dd�D�]Ü\}}| ¡} t| ƒdksF| dddkrvqF|dkrôzt | dƒ}Wn>t yÌ} z&t   d ||| d¡¡| ‚WYd} ~ n d} ~ 00|dkrît   d  ||| d¡¡‚d }qF|d k�rêt| ƒd k�s| dd k�r.t   d  ||| ¡¡‚t | dƒ} zt | d ƒ} Wn@t �yŠ} z&t   d ||| d ¡¡| ‚WYd} ~ n d} ~ 00| dk�r®t   d ||| d ¡¡‚|d7}||k�rÔt   d ||| ¡¡‚tƒ|j| <d} d }qF|d krFt | dƒ}t | dƒ}|tv�r,t   d ||| d¡¡‚zt | d ƒ}Wn@t �y|} z&t   d ||| d ¡¡| ‚WYd} ~ n d} ~ 00t|k�r–tk�s´nt   d ||| d tt¡¡‚|j d | |||¡¡|dk�rê|j d | |¡¡t|j| |dd�}||_||_|d7}| d7} | | krFd }qFWdƒn1�s<0Y||_|j d |¡¡|j d ||¡¡dS)r@zOpening permission map "{0}"rrr )Ústartú#z&{0}:{1}:Invalid number of classes: {2}Nz/{0}:{1}:Number of classes must be positive: {2}ééÚclassz&{0}:{1}:Invalid class declaration: {2}z*{0}:{1}:Invalid number of permissions: {2}z3{0}:{1}:Number of permissions must be positive: {2}z{0}:{1}:Extra class found: {2}z/{0}:{1}:Invalid information flow direction: {2}z&{0}:{1}:Invalid permission weight: {2}z.{0}:{1}:Permission weight must be {3}-{4}: {2}zRead {0}:{1} {2} {3}rzPermission {0}:{1} is unmapped.T©r2z(Successfully opened permission map "{0}"z+Read {0} classes and {1} total permissions.)rBÚinfor&ÚopenrCÚclearÚ enumerateÚsplitÚlenrr%r ZPermissionMapParseErrorr<rr)r#r$Údebugr+r(r!rH)r5r?ÚmapfileZ total_permsZ class_countZ num_classesÚstateZline_numÚlineÚentryÚexÚ class_nameZ num_permsZ perm_countÚ perm_nameZflow_directionr!rTrrr rD€sØ  ÿÿþ ÿÿ ÿÿ  ÿÿþ  ÿÿ ÿÿ     ÿÿ ÿÿþ þÿ ÿ  ÿ& ÿzPermissionMap.loadc Cs@t|dƒ��}|j d |¡¡| d t|jƒ¡¡|j ¡D]È\}}| d |t|ƒ¡¡| ¡D]–\}}tt |dƒ}tt |dƒ}t |kržt ks²nJd |||¡ƒ‚|t vsÌJd |||¡ƒ‚|d krè|j d  ||¡¡| d  |||¡¡qf| d ¡q@|j d  |¡¡Wdƒn1�s20YdS)zà Save the permission map to the specified path. Existing files will be overwritten. Parameter: permmapfile The path to write the permission map. rzWriting permission map to "{0}"z{0} zclass {0} {1} r(r!z={0}:{1} weight is out of range ({2}). This is an SETools bug.z@{0}:{1} flow direction ({2}) is invalid. This is an SETools bug.rz1Warning: permission {0} in class {1} is unmapped.z{0:>20} {1:>9} {2:>9} Ú z*Successfully wrote permission map to "{0}"N)r]rBr\r&rrarCÚitemsrr<rr#r$r)Zwarning) r5r?rcr0rRZpermnameZsettingsr(r!rrr Úsaveñs2ÿÿ ÿÿ ÿ zPermissionMap.saveccs|j ¡EdHdS)zw Generate class names in the permission map. Yield: class An object class name. N)rCÚkeysrIrrr rQszPermissionMap.classes)r-r"c csdz(|j| ¡D]}t|j||ƒVqWn6ty^}zt d |¡¡|‚WYd}~n d}~00dS)zâ Generate permission mappings for the specified class. Parameter: class_ An object class name. Yield: Mapping A permission's complete map (weight, direction, enabled) r3N)rCrmr+ÚKeyErrorr r4r&)r5r-r.rgrrr rRs zPermissionMap.perms)r-r.r"cCst|j||ƒS)z)Retrieve a specific permission's mapping.)r+rC©r5r-r.rrr rT/szPermissionMap.mappingcCs| |¡D] }d|_q dS)a Exclude all permissions in an object class for calculating rule weights. Parameter: class_ The object class to exclude. Exceptions: UnmappedClass The specified object class is not mapped. FN©rRr,rorrr Ú exclude_class3s zPermissionMap.exclude_class)r-r1r"cCsdt|j||ƒ_dS)aˆ Exclude a permission for calculating rule weights. Parameter: class_ The object class of the permission. permission The permission name to exclude. Exceptions: UnmappedClass The specified object class is not mapped. UnmappedPermission The specified permission is not mapped for the object class. FN©r+rCr,©r5r-r1rrr Úexclude_permission@s z PermissionMap.exclude_permissioncCs| |¡D] }d|_q dS)a Include all permissions in an object class for calculating rule weights. Parameter: class_ The object class to include. Exceptions: UnmappedClass The specified object class is not mapped. TNrprorrr Ú include_classNs zPermissionMap.include_classcCsdt|j||ƒ_dS)aˆ Include a permission for calculating rule weights. Parameter: class_ The object class of the permission. permission The permission name to include. Exceptions: UnmappedClass The specified object class is not mapped. UnmappedPermission The specified permission is not mapped for the object class. TNrrrsrrr Úinclude_permission\s z PermissionMap.include_permission)Úpolicyr"c CsÀ| ¡D]²}t|ƒ}||jvr>|j d ||¡¡tƒ|j|<|j}tt j ƒ�||j jO}Wdƒn1sp0Y|D]:}||j|vr~|j d |||¡¡t |j||dd�q~qdS)zHCreate mappings for all classes and permissions in the specified policy.z"Adding unmapped class {0} from {1}Nz.Adding unmapped permission {0} in {1} from {2}Tr[) rQr<rCrBrbr&rrRrr ZNoCommonÚcommonr+)r5rwr-rhrRrirrr Ú map_policyks    * ÿzPermissionMap.map_policy)Úruler"cCs®d}d}t|jƒ}|jtjkr0t d |j¡¡‚|jD]l}t |j ||ƒ}|j sPq6|j dkrht ||jƒ}q6|j dkr€t ||jƒ}q6|j dkr6t ||jƒ}t ||jƒ}q6t||ƒS)aT Get the type enforcement rule's information flow read and write weights. Parameter: rule A type enforcement rule. Return: Tuple(read_weight, write_weight) read_weight The type enforcement rule's read weight. write_weight The type enforcement rule's write weight. rz1{0} rules cannot be used for calculating a weightrrr)r<ZtclassZruletyperZallowr Z RuleTypeErrorr&rRr+rCr,r(Úmaxr!r)r5rzZ write_weightZ read_weightrhrirTrrr Ú rule_weights&   ÿ     zPermissionMap.rule_weight)r-r1r(r"cCs|t|j||ƒ_dS)aÓ Set the information flow direction of a permission. Parameter: class_ The object class of the permission. permission The permission name. direction The information flow direction the permission (r/w/b/n). Exceptions: UnmappedClass The specified object class is not mapped. UnmappedPermission The specified permission is not mapped for the object class. N)r+rCr()r5r-r1r(rrr Ú set_direction¦s zPermissionMap.set_direction)r-r1r!r"cCs|t|j||ƒ_dS)a« Set the weight of a permission. Parameter: class_ The object class of the permission. permission The permission name. weight The weight of the permission (1-10). Exceptions: UnmappedClass The specified object class is not mapped. UnmappedPermission The specified permission is not mapped for the object class. N)r+rCr!)r5r-r1r!rrr Ú set_weightµs zPermissionMap.set_weight)N)rrrrrr<r6rJrPrr+rUrDrlrQrRrTrqrtrurvrryr rr|r}rr~rrrr r>[s$q%  'r>)"rArLÚ collectionsrÚ contextlibrÚtypingrrrrrr rEÚr Z descriptorsr Z policyrepr rrr)r#r$rrr'r<r*r;r=r+r>rrrr Ús"      &(