/usr/lib/python3.9/site-packages/sepolgen/__pycache__
Edit: /usr/lib/python3.9/site-packages/sepolgen/__pycache__/audit.cpython-39.pyc (17260B)
a
BÒiÜU ã @ sø d dl Z d dlZddlmZ ddlmZ ddlmZ dd„ Zdd „ Zd
d„ ZG dd
„ d
ƒZ G dd„ de ƒZ
G dd„ de ƒZd dlm
Z
i ZG dd„ de ƒZG dd„ de ƒZG dd„ de ƒZG dd„ de ƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZdS ) é Né )Ú refpolicy)Úaccess)Úutilc C s– ddl } ddl}tddƒ}t| ¡ ¡ d ƒ}|j | | ¡ | ¡}| d|¡}| d|¡}| j ddd d
||g| j
d ¡ d }tj
r’t |¡}|S )á
Obtain all of the avc and policy load messages from the audit
log. This function uses ausearch and requires that the current
process have sufficient rights to run ausearch.
Returns:
string contain all of the audit messages returned by ausearch.
r Nz/proc/uptimeÚrz%xz%Xú/sbin/ausearchú-mú5AVC,USER_AVC,MAC_POLICY_LOAD,DAEMON_START,SELINUX_ERRz-ts©Ústdout)Ú
subprocessÚtimeÚopenÚfloatÚreadÚsplitÚcloseÚ localtimeÚstrftimeÚPopenÚPIPEÚcommunicater ÚPY3Údecode_input)r
r ÚfdZoffÚsZbootdateZboottimeÚoutput© r ú2/usr/lib/python3.9/site-packages/sepolgen/audit.pyÚget_audit_boot_msgs s
ÿÿ
r c C s8 ddl } | jg d¢| jd ¡ d }tjr4t |¡}|S )r r N)r r r
r ©r
r r r r r r ©r
r r r r Úget_audit_msgs2 s
ÿÿ
r# c C s6 ddl } | jdg| jd ¡ d }tjr2t |¡}|S )z•Obtain all of the avc and policy load messages from /bin/dmesg.
Returns:
string contain all of the audit messages returned by dmesg.
r Nz
/bin/dmesgr r! r" r r r Úget_dmesg_msgsA s ÿÿ
r$ c @ s e Zd ZdZdd„ Zdd„ ZdS )ÚAuditMessagezãBase class for all objects representing audit messages.
AuditMessage is a base class for all audit messages and only
provides storage for the raw message (as a string) and a
parsing function that does nothing.
c C s || _ d| _d S ©NÚ )ÚmessageÚheader©Úselfr( r r r Ú__init__W s zAuditMessage.__init__c C s^ |D ]T}| d¡}t|ƒdkr<|dd… dkr|| _ dS q|d dkr|d | _ dS qdS ) zàParse a string that has been split into records by space into
an audit message.
This method should be overridden by subclasses. Error reporting
should be done by raise ValueError exceptions.
ú=é Né zaudit(r Úmsgr )r Úlenr) ©r+ Úrecsr0 Úfieldsr r r Úfrom_split_string[ s
zAuditMessage.from_split_stringN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r, r5 r r r r r% P s r% c @ s e Zd ZdZdd„ ZdS )ÚInvalidMessagezþClass representing invalid audit messages. This is used to differentiate
between audit messages that aren't recognized (that should return None from
the audit message parser) and a message that is recognized but is malformed
in some way.
c C s t | |¡ d S ©N©r% r, r* r r r r, v s zInvalidMessage.__init__N©r7 r8 r9 r: r, r r r r r; p s r; c @ s e Zd ZdZdd„ Zdd„ ZdS )ÚPathMessagez!Class representing a path messagec C s t | |¡ d| _d S r&