PATH:
usr
/
lib
/
python3.6
/
site-packages
/
firewall
/
core
/
io
/
__pycache__
/
Editing: lockdown_whitelist.cpython-36.pyc
3 ��g�1 � @ s� d dl jZd dlZd dlZd dlZd dlmZ d dlmZm Z m Z mZ d dlm Z d dlmZmZmZmZmZmZ d dlmZ d dlmZ G dd � d e �ZG d d� de �ZdS )� N)�config)�PY2� IO_Object�IO_Object_ContentHandler�IO_Object_XMLGenerator)�log)�uniqify� checkUser�checkUid�checkCommand�checkContext� u2b_if_py2)�errors)� FirewallErrorc @ s e Zd Zdd� Zdd� ZdS )�!lockdown_whitelist_ContentHandlerc C s t j| |� d| _d S )NF)r �__init__� whitelist)�self�item� r �(/usr/lib/python3.6/lockdown_whitelist.pyr % s z*lockdown_whitelist_ContentHandler.__init__c C sV t j| ||� | jj||� |dkr@| jr6ttjd��d| _�n|dkrr| js\tj d� d S |d }| jj |� n�|dkr�| js�tj d� d S d |kr�yt|d �}W n& tk r� tj d |d � d S X | jj |� nd|kr�| jj|d � n\|dk�r@| j�stj d� d S d |k�r.tj d� d S | jj|d � ntj d| � d S d S )Nr zMore than one whitelist.T�commandz)Parse Error: command outside of whitelist�name�userz&Parse Error: user outside of whitelist�idz"Parse Error: %s is not a valid uid�selinuxz)Parse Error: selinux outside of whitelist�contextzParse Error: no contextzUnknown XML element %s)r �startElementr Zparser_check_element_attrsr r r ZPARSE_ERRORr �error�add_command�int� ValueError�add_uid�add_user�add_context)r r Zattrsr �uidr r r r ) sJ z.lockdown_whitelist_ContentHandler.startElementN)�__name__� __module__�__qualname__r r r r r r r $ s r c s4 e Zd ZdZddgfddgfddgfddgffZdZd gZd dgd dgd �ZdddgiZ� fdd�Z dd� Z dd� Zdd� Zdd� Z dd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Zd<d=� Zd>d?� Z d@dA� Z!dBdC� Z"� Z#S )D�LockdownWhitelistz LockdownWhitelist class �commands� �contexts�users�uidsr z (asasasai)�_Nr r )r r r r r r c s6 t t| �j� || _d | _g | _g | _g | _g | _d S )N) �superr) r �filename�parserr* r, r- r. )r r1 )� __class__r r r n s zLockdownWhitelist.__init__c C s� |d kr.x�|D ]}| j ||d d� |� qW nv|dkrLt|�s�ttj|��nX|dkrjt|�s�ttj|��n:|dkr�t|�s�ttj|��n|d kr�t |�s�ttj |��d S )Nr* r, r- r. � r r r r% )r* r, r- r. ���)� _check_configr r r �INVALID_COMMANDr �INVALID_CONTEXTr �INVALID_USERr �INVALID_UID)r r r Z all_config�xr r r r6 y s zLockdownWhitelist._check_configc C s4 | j d d �= | jd d �= | jd d �= | jd d �= d S )N)r* r, r- r. )r r r r �cleanup� s zLockdownWhitelist.cleanupc C s: dd� | j D �| _ dd� | jD �| _dd� | jD �| _dS )z� HACK. I haven't been able to make sax parser return strings encoded (because of python 2) instead of in unicode. Get rid of it once we throw out python 2 support.c S s g | ]}t |��qS r )r )�.0r; r r r � <listcomp>� s z4LockdownWhitelist.encode_strings.<locals>.<listcomp>c S s g | ]}t |��qS r )r )r= r; r r r r>