404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@52.14.116.234: ~ $
3

�Qf4��@s2ddlmZdddddgZddlmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZdd	lmZmZed
d�Zed
d�ZiZe
jdBkr�ded<e	jfeed�e��e	jeedd�Zy
ejZWnek
�rej	ZYnXddlmZddlm Z m!Z!m"Z"m#Z#ddl$TddlmZddl$m%Z%ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-ddl.m/Z/m0Z0m1Z1m2Z2ddl3m4Z4m5Z5m6Z6ddl7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>e<d�dd�Z?dd�Z@d d!�ZAd"d�ZBed#d$�ZCed#d%�ZDed#d&�ZEejF�ZGeGjHeC�d'd�ZIdaJdaKdaLed(d)�ZMed
d*�aNed
d+�ZOed
d,�ZPeA�ZQGd-d�deR�ZSeS�ZTGd.d/�d/e �ZUGd0d�de/�ZVGd1d2�d2eVe4e5e6�ZWGd3d4�d4eR�ZXddlYTddl7ZZGd5d6�d6ej[j\�Z]d7d8�Z^Gd9d:�d:�Z_ddl`Z`ddlajbZbd;d<�Zcejd�Zed=d>�ZfdCd@d�ZgehdAk�r.eg�dS)D�)�absolute_import�RunFaultServer�ClientConnectionHandler�get_host_database�send_alert_notification�ConnectionPool)�GObject�GLibN)�parse_config_setting�
get_configZgeneralZi18n_text_domainZi18n_locale_dir�TZunicode)�domain�	localedir)r
rZfallback)�ServerAccess)�PluginReportReceiver�SETroubleshootDatabase�TestPluginReportReceiver�
AnalyzeThread)�*)r)�AuditRecordReceiver)�ProgramError�ERR_NOT_AUTHENTICATED�ERR_USER_LOOKUP�ERR_USER_PROHIBITED�ERR_USER_PERMISSION�
ERR_FILE_OPEN�ERR_DATABASE_NOT_FOUND)�
RpcChannel�ConnectionState�get_socket_list_from_config�ListeningServer)�SETroubleshootServerInterface�%SETroubleshootDatabaseNotifyInterface�SEAlertInterface)�get_hostname�make_database_filepath�!assure_file_ownership_permissions�get_identity�log_init�	log_debug�syslog_trace�setroubleshootd_logcCs8td|�ddlj}|tjkr4td�|j�dSdS)Nzreceived signal=%srzreloading configuration file)r)�setroubleshoot.config�config�signal�SIGHUPZconfig_init)�signum�framer-�r2�/usr/lib/python3.6/server.py�
sighandlerms

r4cCs(td|�tjtjd�tjd�dS)Nzreceived signal=%sz=/sys/fs/selinux/policy is in use by another process. Exiting!�)r)�syslog�LOG_ERR�os�_exit)r0r1r2r2r3�polling_failed_handlervsr:cCs0ddl}t�}tj�}t|j��}d|||fS)Nrz%s:%s:%s)�timer$r8�getpid�str)r;Zhostname�pidZstampr2r2r3�make_instance_id}s
r?cCstS)N)�
host_databaser2r2r2r3r�sZsystem_dbusZbus_name�object_pathZ	interfacecCsTtjjttd�}|j|j�|j|j�tj	|�xt
jd�D]}|j|�q>WdS)N�alert�sealert)
�dbusZlowlevelZ
SignalMessage�dbus_system_object_path�dbus_system_interface�append�level�local_id�
system_busZsend_message�connection_pool�clientsrB)�siginforB�clientr2r2r3r�s
ZemailZrecipients_filepath�pkg_name�pkg_version�rpc_versionc@s8eZdZdd�Zdd�Zdd�Zddd	�Zd
d
d�ZdS)rcCs
i|_dS)N)�client_pool)�selfr2r2r3�__init__�szConnectionPool.__init__cCs(||jkrtd|�dSd|j|<dS)Nz.add_client: client (%s) already in client pool)rRr))rS�handlerr2r2r3�
add_client�s
zConnectionPool.add_clientcCs&||jkrtd|�dS|j|=dS)Nz-remove_client: client (%s) not in client pool)rRr))rSrUr2r2r3�
remove_client�s
zConnectionPool.remove_clientNccs4x.|jD]$}|dkr|Vq|j|kr|VqWdS)N)rR�channel_type)rSrXrNr2r2r3rL�s

zConnectionPool.clientscCs&x |jD]}|j|kr|j�qWdS)N)rRrXZclose_connection)rSrXrNr2r2r3�	close_all�s
zConnectionPool.close_all)N)N)�__name__�
__module__�__qualname__rTrVrWrLrYr2r2r2r3r�s

cs(eZdZ�fdd�Z�fdd�Z�ZS)�AlertPluginReportReceivercstt|�j|�dS)N)�superr]rT)rS�database)�	__class__r2r3rT�sz"AlertPluginReportReceiver.__init__cs^tt|�j|�}tdk	r�g}xHtjD]>}d|j}|j||j�}|dkr$td|j	�|j
|j�q$Wt|�r�ddlm
}|||�|jj�td�ddlm}tjtj|j�td�|j�x&|jjD]}|jd	kr�|jd
}	Pq�Wtddt��rtjj|j �|	t!d
�xB|j"D]8}
|
j#dd�dk�r2�q|j|
j#�}|dk�r|S�qWt$|�|S)Nzemail:%s�ignorezEmail: siginfo.sig=%sr)�email_alertzsending alert to all clients)�html_to_textz1 For complete SELinux messages run: sealert -l %s�AVCr>r+Zlog_full_report)Z
OBJECT_PIDZSYSLOG_IDENTIFIER�zemail:)%r^r]�report_problem�email_recipientsZrecipient_listZaddress�evaluate_filter_for_user�filter_typer)�sigrG�lenZsetroubleshoot.email_alertrbr_Z
mark_modifiedZsetroubleshoot.html_utilrcr6r7�summary�_rI�audit_event�records�record_type�fieldsr�bool�systemdZjournal�sendZformat_textrOZusers�usernamer)rSrMZto_addrsZ	recipientru�actionrbrc�audit_recordr>�u)r`r2r3rf�s<


 



z(AlertPluginReportReceiver.report_problem)rZr[r\rTrf�
__classcell__r2r2)r`r3r]�sr]c@s$eZdZdd�Zdd�Zdd�ZdS)rcCs*tj|d�|j�|_|jjd|j�dS)NrCZchanged)rrT�copy�socket_address�connection_stateZconnect�on_connection_state_change)rSr{r2r2r3rT�s
z ClientConnectionHandler.__init__cCsTtd|jj||j|�|j|�|jf�|tj@r<tj|�|tj@rPtj	|�dS)Nz]%s.on_connection_state_change: connection_state=%s flags_added=%s flags_removed=%s address=%s)
r)r`rZ�flags_to_stringr{r�OPENrKrWrV)rSr|�flags�flags_added�
flags_removedr2r2r3r}s
(


z2ClientConnectionHandler.on_connection_state_changecCs8|jjtj@rdS||j_|jjtj�|j|j�dS)NT)	r|r�rrr{�socket�update�io_watch_add�handle_client_io)rSr�r{r2r2r3�opens
zClientConnectionHandler.openN)rZr[r\rTr}r�r2r2r2r3r�s	c@s~eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zddd�Zdd�ZdS) �&SetroubleshootdClientConnectionHandlercCsJtj||�t�|_|jd|�|jd|�t�|_d|_d|_d|_	dS)NZSETroubleshootServerr)
rrTrr_Zconnect_rpc_interfacer�accessru�uid�gid)rSr{r2r2r3rTsz/SetroubleshootdClientConnectionHandler.__init__cCs�td|jj||j|�|j|�|jf�|tj@r<tj|�|tj@r�|j	j
|jj�\|_|_
td|jj|j|j
f�tj|�dS)Nz]%s.on_connection_state_change: connection_state=%s flags_added=%s flags_removed=%s address=%szF%s.on_connection_state_change: open, socket credentials: uid=%s gid=%s)r)r`rZr~r{rrrKrWr�Zget_credentialsr�r�r�rV)rSr|r�r�r�r2r2r3r}(s(


zASetroubleshootdClientConnectionHandler.on_connection_state_changecCs8|jjtj@rdS||j_|jjtj�|j|j�dS)NT)	r|r�rrr{r�r�r�r�)rSr�r{r2r2r3r�3s
z+SetroubleshootdClientConnectionHandler.opencCsB|jjtj@stt��t�}|jj|kr0|jgStt	d|��dS)Nzdatabase (%s) not found)
r|r�r�
AUTHENTICATEDrrr�
properties�namer)rSZ
database_namer@r2r2r3�
database_bind<sz4SetroubleshootdClientConnectionHandler.database_bindcCs�td|||f�|t|j�kr6ttd|j|fd��|dkrDd}nd}|jj||�s^tt��||_||_	||_
|jj|�|_
|j
dkr�|jj|�|jjtj�ttgS)Nzlogon(%s) type=%s username=%sz)uid=%s does not match logon username (%s))�detailrCrN)r)r'r�rrr�Zuser_allowedrrXZchannel_namerur_Zget_user�userZadd_userr|r�rr�rPrQ)rS�typeruZpasswordZ	privileger2r2r3�logonEs 
z,SetroubleshootdClientConnectionHandler.logoncCs|jjtj@stt��tgS)N)r|r�rr�rrrg)rSr2r2r3�query_email_recipients]sz=SetroubleshootdClientConnectionHandler.query_email_recipientscCs4td|�|jjtj@s"tt��|atjt	�dS)Nzset_email_recipients: %s)
r)r|r�rr�rrrgZwrite_recipient_file�email_recipients_filepath)rSZ
recipientsr2r2r3�set_email_recipientscs
z;SetroubleshootdClientConnectionHandler.set_email_recipientscCs2td|�|jjtj@s"tt��|jj|�}dS)Nzdelete_signature: sig=%s)	r)r|r�rr�rrr_�delete_signature)rSrjrMr2r2r3r�ps
z7SetroubleshootdClientConnectionHandler.delete_signaturecCs.td�|jjtj@stt��|jj�}|gS)N�get_properties)	r)r|r�rr�rrr_r�)rSr�r2r2r3r�ys

z5SetroubleshootdClientConnectionHandler.get_propertiescCs:td||f�|jjtj@s&tt��|jj||�}|gS)Nz)evaluate_alert_filter: username=%s sig=%s)	r)r|r�rr�rrr_�evaluate_alert_filter)rSrjrurvr2r2r3r��s
z<SetroubleshootdClientConnectionHandler.evaluate_alert_filtercCs4td|�|jjtj@s"tt��|jj|�}|gS)Nzlookup_local_id: %s)	r)r|r�rr�rrr_�lookup_local_id)rSrIrMr2r2r3r��s
z6SetroubleshootdClientConnectionHandler.lookup_local_idcCs4td|�|jjtj@s"tt��|jj|�}|gS)Nzquery_alerts: criteria=%s)	r)r|r�rr�rrr_�query_alerts)rSZcriteria�sigsr2r2r3r��s
z3SetroubleshootdClientConnectionHandler.query_alerts�cCsbtd|||f�|jjtj@s(tt��||jkrLttt	d�|j|fd��|j
j||||�dS)Nz.set_filter: username=%s filter_type=%s sig=
%sz)The user (%s) cannot modify data for (%s))r�)r)r|r�rr�rrrurrmr_�
set_filter)rSrjruri�datar2r2r3r��s
z1SetroubleshootdClientConnectionHandler.set_filtercCs@td||||f�|jjtj@s*tt��|jj||||�dS)Nz2set_user_data: username=%s item=%s data=%s sig=
%s)	r)r|r�rr�rrr_�
set_user_data)rSrjru�itemr�r2r2r3r��s
z4SetroubleshootdClientConnectionHandler.set_user_dataN)r�)rZr[r\rTr}r�r�r�r�r�r�r�r�r�r�r�r�r2r2r2r3r�s
		
					
r�c@seZdZdd�Zdd�ZdS)�ClientNotifiercCs
||_dS)N)rK)rSrKr2r2r3rT�szClientNotifier.__init__cCs&x |jjd�D]}|j||�qWdS)NrC)rKrL�signatures_updated)rSr�r�rNr2r2r3r��sz!ClientNotifier.signatures_updatedN)rZr[r\rTr�r2r2r2r3r��sr�c@sleZdZd2dd�Zdd�Zejje�dd��Z	ejjedd	�d
d��Z
ejje�dd
��Zejjedddd�dd��Z
d3dd�Zejjedddd�dd��Zejjedddd�dd��Zejjedddd�dd��Zd d!�Zejjeddd"d�d#d$��Zejjeddd%d�d&d'��Zejjeddd%d�d(d)��Zejjeddd*�d+d,��Zejje�d-d.��Zd4d/d0�Zd1S)5�SetroubleshootdDBusObject�
cCs^tjjj|tj�|�d|_||_|j|j�td|�||_	||_
ttj�|_
t�|_dS)Nrzdbus __init__ %s called)rD�service�ObjectrT�	SystemBus�conn_ctr�timeout�alarmr)�queue�receiverZAuditRecordReaderZTEXT_FORMAT�
record_readerr�record_receiver)rSrA�analysis_queue�alert_receiverr�r2r2r3rT�sz"SetroubleshootdDBusObject.__init__cCs�y`tj�d}x4dtj�|fd|gD]}tjj|�r(td��q(Wt|�r^|jj	||j
f�Wn4tk
r�}ztjtjt
|��WYdd}~XnXdS)Nr5z%%s%s/modules/active/disable_dontauditz,/var/lib/selinux/%s/active/disable_dontauditzsSetroubleshoot can not analyze AVCs while dontaudit rules are disabled, 'semodule -B' will turn on dontaudit rules.)�selinuxZselinux_getpolicytypeZselinux_pathr8�path�exists�
ValueErrorZ
verify_avcr�Zputr�r6r7r=)rS�avcZpolicy_typeZ
store_path�er2r2r3�add�szSetroubleshootdDBusObject.addcCsdS)Nr2)rS�reasonr2r2r3�restart�sz!SetroubleshootdDBusObject.restartZss)Z	signaturecCsdS)Nr2)rSrHrIr2r2r3rB�szSetroubleshootdDBusObject.alertcCs.|jd�|jd7_td|j�td�S)Nrr5z)dbus iface start() called: %d ConnectionsZStarted)r�r�r)rm)rSr2r2r3�start�s
zSetroubleshootdDBusObject.start�sender�sZii)Zsender_keyword�in_signature�
out_signaturecCs�t|jj|��}t�}d}g}x2|jd�j�D] }|j|�}|dkr.|j|�q.W|jt	d�d}	d}
x8|D]0}|	d7}	|j
dkr�|
d7}
|j|krld}
d}	qlW|	|
fS)Nr�rra)�keyrr5�red)r'�
connection�
get_unix_userrr��siginfosrhrG�sort�compare_sigrHrI)rSZlast_seen_idr�rur_r�Z
signaturesrjrv�countr�r2r2r3�
check_for_new�s&



z'SetroubleshootdDBusObject.check_for_new�displayc
Cs~t|jj|��}t�}tjjt|d��}|jd�j	}g}x>|D]6}	|	j
|krPq@|	j|�|kr@|j|	j
|	j�|	jf�q@W|S)Ni@Br)r'r�r�r�setroubleshoot�utilZ	TimeStamp�floatr��signature_list�last_seen_daterhrGrIrl�report_count)
rS�sincer��alert_actionrur_Zsince_alerts�database_alertsZalertsrBr2r2r3�_get_all_alerts_sinces

z/SetroubleshootdDBusObject._get_all_alerts_since�tza(ssi)cCs|j||�S)N)r�)rSr�r�r2r2r3�get_all_alerts_sincesz.SetroubleshootdDBusObject.get_all_alerts_sincer�cCs|jd|�S)a�
        Return array of *local_id*'s, *summary*'s, and *report_count*'s of all current alerts in a setroubleshoot database

        returns list of:
        * `local_id(s)`: a report id in a setroubleshoot database
        * `summary(s)`: a brief description of an alert. E.g. `"SELinux is preventing /usr/bin/bash from ioctl access on the unix_stream_socket unix_stream_socket."`
        * `report_count(i)`: count of reports of this alert
r)r�)rSr�r2r2r3�get_all_alertss
z(SetroubleshootdDBusObject.get_all_alertscCs|jd|dd�S)a�
        Return array of *local_id*'s, *summary*'s, and *report_count*'s of all alerts which a user set to be ignored by a user

        returns list of:
        * `local_id(s)`: a report id in a setroubleshoot database
        * `summary(s)`: a brief description of an alert. E.g. `"SELinux is preventing /usr/bin/bash from ioctl access on the unix_stream_socket unix_stream_socket."`
        * `report_count(i)`: count of reports of this alert
rra)r�)r�)rSr�r2r2r3�get_all_alerts_ignored(s
z0SetroubleshootdDBusObject.get_all_alerts_ignoredcCsFy|j|�}Wn&tk
r4}z
|�WYdd}~XnX|j�j�}|S)N)r�rr��__next__)rSrIr_r�r�rBr2r2r3�
_get_alert4sz$SetroubleshootdDBusObject._get_alertzssiasa(ssssbbi)ttsc
	Cs�t|jj|��}t�}|j||�}|j�|jj}dd�|D�}|j�\}}	g}
xZ|	D]R\}}|
j	|j
|j||��|j
|j||��|j
|j
||��|j|j|j|jf�qVW|j|j�|j||
t|jjd��dt|jjd��d|jp�dfS)ar
Return an alert with summary, audit events, fix suggestions

##### arguments

* `local_id(s)`: an alert id

##### return values

* `local_id(s)`: an alert id
* `summary(s)`: a brief description of an alert. E.g. `"SELinux is preventing /usr/bin/bash from
  ioctl access on the unix_stream_socket unix_stream_socket."`
* `report_count(i)`: count of reports of this alert
* `audit_event(as)`: an array of audit events (AVC, SYSCALL) connected to the alert
* `plugin_analysis(a(ssssbb)`: an array of plugin analysis structure
 * `if_text(s)`:
 * `then_text(s)`
 * `do_text(s)`
 * `analysis_id(s)`: plugin id. It can be used in `org.fedoraproject.SetroubleshootFixit.run_fix()`
 * `fixable(b)`: True when an alert is fixable by a plugin
 * `report_bug(b)`: True when an alert should be reported to bugzilla
 * `priority(i)`:  An analysis priority. Typically the value is between 1 - 100.
* `first_seen_date(t)`: when the alert was seen for the first time, number of microseconds since the Epoch
* `last_seen_date(t)`: when the alert was seen for the last time, number of microseconds since the Epoch
* `level(s)`: "green", "yellow" or "red"
cSsg|]}|j��qSr2)Zto_text)�.0Zeventr2r2r3�
<listcomp>^sz7SetroubleshootdDBusObject.get_alert.<locals>.<listcomp>z%si@Br�)r'r�r�rr�Z%update_derived_template_substitutionsrnroZget_pluginsrGZ
substituteZget_if_textZ
get_then_textZget_do_textZanalysis_idZfixableZ
report_bugZpriorityrIrlr��intZfirst_seen_date�formatr�rH)
rSrIr�rur_rBr�Zaudit_eventsZtotal_priorityZ
alert_pluginsZpluginsZplugin�argsr2r2r3�	get_alert<s,z#SetroubleshootdDBusObject.get_alert�bcCsXyHt|jj|��}t�}|j||�}ddlm}|j|j|||d�dSdSdS)z�
Sets a filter on an alert. The alert can be "always" filtered, "never" filtered or "after_first" filtered.

##### arguments

* `local_id(s)`: an alert id
* `filter_type(s)`: "always", "never", "after_first"

##### return values

* `success(b)`:
r)�map_filter_name_to_valueNTF)	r'r�r�rr��setroubleshoot.signaturer�r�rj)rSrIrir�rur_rBr�r2r2r3r�tsz$SetroubleshootdDBusObject.set_filterc	Cs2y"t�}|j||�}|j|j�dSdSdS)zz
Deletes an alert from the database.

##### arguments

* `local_id(s)`: an alert id

##### return values

* `success(b)`:
TFN)rr�r�rj)rSrIr�r_rBr2r2r3�delete_alert�s
z&SetroubleshootdDBusObject.delete_alert)r�r�c
Cst|�}|jd�|jd7_td||jf�x^|jjt|��D]J\}}}}}t|||||�}|j�x"|jj|�D]}|j	t
|��qxWqDWx\|jjd�D]L}y|j	t
|��Wq�tk
r�}	zt
j
t
jd|	�WYdd}	~	Xq�Xq�W|jd8_|j|j�td�S)Nrr5z#dbus avc(%s) called: %d ConnectionszUnable to add audit event: %srd)r=r�r�r)r�ZfeedZAuditRecordZaudispd_rectifyr�r�rd�flushr�r6r7r�rm)
rSr�rpZevent_idZ	body_textrqZline_numberrwrnr�r2r2r3r��s"
 (zSetroubleshootdDBusObject.avccCs,|jd8_td|j�|j|j�dS)Nr5z*dbus iface finish() called: %d Connectionsr�)r�r)r�r�)rSr2r2r3�finish�sz SetroubleshootdDBusObject.finishcCs|jdkrtj|�dS)Nr)r�r.r�)rSr�r2r2r3r��s
zSetroubleshootdDBusObject.alarmN)r�)r�)r�)rZr[r\rTr�rDr�r.rFr�rB�methodr�r�r�r�r�r�r�r�r�r�r�r�r�r2r2r2r3r��s"


8r�cCs|jS)N)r�)�ar2r2r3r��sr�c@seZdZdd�Zdd�ZdS)�SetroubleshootdDBuscCsdy&tdtttf�tt|||�|_Wn8tk
r^}ztjtjd|�|�WYdd}~XnXdS)Nz=creating system dbus: bus_name=%s object_path=%s interface=%sz$cannot start system DBus service: %s)	r)�dbus_system_bus_namerErFr��dbus_obj�	Exceptionr6r7)rSr�r�r�r�r2r2r3rT�szSetroubleshootdDBus.__init__cCs|jjd�dS)Nzdaemon requestT)r�r�)rSr2r2r3�
do_restart�szSetroubleshootdDBus.do_restartN)rZr[r\rTr�r2r2r2r3r��sr�cCs|j�tj�dS)N)�save�	audit2whyr�)r_r2r2r3�goodbye�sr�cCstd�tj�dS)Nz SIGALRM raised in RunFaultServer)r)�	main_loop�quit)r0r1r2r2r3�
alarm_handler�sr�r�cCs�tj|�tjtjt�x�ytj�tjd�PWqtk
rf}zdt|�krRw|�WYdd}~Xqtk
r�}z dtt	|dd��kr�w|�WYdd}~XqXqWtjtjt
�tjtjt��yt
jt�tt�}tdd�}t|�}t|dd�t||td	�d
�atj|�tjtt�d}x�tjjD]�}tjt|jj �t|jj!�t|jj"�|jj#�\}}|tj$k�sx|tj%k�r,|tj$k�r�d}	nd
}	t
j
t
j&d|j'|	f�d}tj(|j��q,W|�r�tj)dd�tddt*��s�t+t�}
nt,t�}
ddl-}|j.j/j0d�a1t2t1|�}|j3d�|j4�ddl5m6}
|
�a7tt8dd�yt7j9t8�Wn@t:k
�r�}z"|j;t<k�rxt=|j>�n|�WYdd}~XnXt?d�}x |D]}t@|tA�}|jB��q�WtCjDjE�tFt1|
|�}tGjH�Wn�tIk
�r}zt=d�WYdd}~Xn�tJk
�r.}zt=d�WYdd}~XnVtKk
�r�}z8ddlL}tM|jN��t
j
t
j&d|jOjPt|�f�WYdd}~XnXdS)Nrz%unable to open /sys/fs/selinux/policy�__context__r�r_�filenamei�r�zAudit Listener)Z
friendly_nameFZallowedzdontaudit'dz-Deleting alert %s, it is %s in current policyT)ZpruneZtest�analyze)�SEEmailRecipientSetZlisten_for_clientz#KeyboardInterrupt in RunFaultServerz$raising SystemExit in RunFaultServerzexception %s: %s)Qr.r��SIGALRMr:r�Zinitr�r=�SystemError�getattrr�r/r4r6ZopenlogrOr�rKrr%r&rrmr@Z
set_notify�atexit�registerr�r�r�r�rjZscontextZtcontextZtclassr�ZALLOWZ	DONTAUDITr7rIr�r�rrr]rZsix.moves.queueZmovesr�ZQueuer�rZ	setDaemonr�r�r�rgr�Zparse_recipient_filer�errnorr)�strerrorrr r�r�rDZglibZinit_threadsr�r�Zrun�KeyboardInterrupt�
SystemExitr��	tracebackr*�
format_excr`rZ)r�r�Zclient_notifierZdatabase_filenameZdatabase_filepathZdeleted�iZwhyZboolsr�r�ZsixZanalyze_threadr�Zlisten_addressesZlisten_addressZlistening_serverZsetroubleshootd_dbusrr2r2r3r�s�




0






�__main__)r)r�)iZ
__future__r�__all__Z
gi.repositoryrr	rDZdbus.serviceZ	dbus.glib�gettextr8r.r��sysr6Zsystemd.journalrsr,r
rr
r�kwargs�version_infoZinstallZtranslationZugettextrm�AttributeErrorZsetroubleshoot.access_controlrZsetroubleshoot.analyzerrrrZsetroubleshoot.avc_auditrZsetroubleshoot.errcoderrrrrrrZsetroubleshoot.rpcrrrr Zsetroubleshoot.rpc_interfacesr!r"r#Zsetroubleshoot.utilr$r%r&r'r(r)r*r4r:r?rr�rErFr�rJZrequest_namerr@r�rgr�rOrPrQZinstance_id�objectrrKr]rr�r�Zsetroubleshoot.audit_datar�r�r�r�r�r�r�Zselinux.audit2whyr�r�ZMainLoopr�r�rrZr2r2r2r3�<module>s�



$	$	







0






Filemanager

Name Type Size Permission Actions
Plugin.cpython-36.opt-1.pyc File 5.11 KB 0644
Plugin.cpython-36.pyc File 5.11 KB 0644
__init__.cpython-36.opt-1.pyc File 113 B 0644
__init__.cpython-36.pyc File 113 B 0644
access_control.cpython-36.opt-1.pyc File 3.89 KB 0644
access_control.cpython-36.pyc File 3.89 KB 0644
analyze.cpython-36.opt-1.pyc File 22.17 KB 0644
analyze.cpython-36.pyc File 22.17 KB 0644
audit_data.cpython-36.opt-1.pyc File 27.42 KB 0644
audit_data.cpython-36.pyc File 27.42 KB 0644
avc_audit.cpython-36.opt-1.pyc File 12.36 KB 0644
avc_audit.cpython-36.pyc File 12.36 KB 0644
config.cpython-36.opt-1.pyc File 11.49 KB 0644
config.cpython-36.pyc File 11.49 KB 0644
email_alert.cpython-36.opt-1.pyc File 1.77 KB 0644
email_alert.cpython-36.pyc File 1.77 KB 0644
errcode.cpython-36.opt-1.pyc File 2.63 KB 0644
errcode.cpython-36.pyc File 2.63 KB 0644
html_util.cpython-36.opt-1.pyc File 5.25 KB 0644
html_util.cpython-36.pyc File 5.25 KB 0644
rpc.cpython-36.opt-1.pyc File 28.32 KB 0644
rpc.cpython-36.pyc File 28.32 KB 0644
rpc_interfaces.cpython-36.opt-1.pyc File 4.75 KB 0644
rpc_interfaces.cpython-36.pyc File 4.75 KB 0644
server.cpython-36.opt-1.pyc File 25.04 KB 0644
server.cpython-36.pyc File 25.04 KB 0644
serverconnection.cpython-36.opt-1.pyc File 5.24 KB 0644
serverconnection.cpython-36.pyc File 5.24 KB 0644
signature.cpython-36.opt-1.pyc File 28.08 KB 0644
signature.cpython-36.pyc File 28.08 KB 0644
util.cpython-36.opt-1.pyc File 25.73 KB 0644
util.cpython-36.pyc File 25.73 KB 0644
uuid.cpython-36.opt-1.pyc File 16.13 KB 0644
uuid.cpython-36.pyc File 16.13 KB 0644
xml_serialize.cpython-36.opt-1.pyc File 9.89 KB 0644
xml_serialize.cpython-36.pyc File 9.89 KB 0644