File: //usr/share/setroubleshoot/plugins/__pycache__/restorecon.cpython-36.pyc
3
nm�aG � @ s~ d dl Z e jddd�Zej Zd dlT d dlmZ d dlZd dlT d dlZda dd� Z
d gZd
d� Zd dlZG dd
� d
e�Z
dS )� Nzsetroubleshoot-pluginsT)Zfallback)�*)�Pluginc C s. t s&ttj� �}|j� jd�a |j� | t kS )N�
)�customizable_types�open�selinuxZselinux_customizable_types_path�read�split�close)�target�fd� r
�//usr/share/setroubleshoot/plugins/restorecon.py�customizable s
r z/sys/fsc C s xt D ]}| j|�rdS qW dS )NTF)�excluded_paths�
startswith)Ztarget_path�pathr
r
r �
excluded_path, s
r c @ sT e Zd Zed�ZdZed�Zdd� Zed�Zdd� Z ed�Z
dZdd
� Zdd� Z
dS )�pluginzN
SELinux is preventing $SOURCE_PATH "$ACCESS" access to $TARGET_PATH.
z/sbin/restorecon $TARGET_PATHz�
You can restore the default system context to this file by executing the
restorecon command. restorecon '$TARGET_PATH', if this file is a directory,
you can recursively restore using restorecon -R '$TARGET_PATH'.
c C s t d�|d S )Na�
SELinux denied access requested by $SOURCE. $TARGET_PATH may
be mislabeled. $TARGET_PATH default SELinux type is
<B>%s</B>, but its current type is <B>$TARGET_TYPE</B>. Changing
this file back to the default type may fix your problem.
<p>
File contexts can be assigned to a file in the following ways.
<ul>
<li>Files created in a directory receive the file context of the parent directory by default.
<li>The SELinux policy might override the default label inherited from the parent directory by
specifying a process running in context A which creates a file in a directory labeled B
will instead create the file with label C. An example of this would be the dhcp client running
with the dhcpc_t type and creating a file in the directory /etc. This file would normally
receive the etc_t type due to parental inheritance but instead the file
is labeled with the net_conf_t type because the SELinux policy specifies this.
<li>Users can change the file context on a file using tools such as chcon, or restorecon.
</ul>
This file could have been mislabeled either by user error, or if an normally confined application
was run under the wrong domain.
<p>
However, this might also indicate a bug in SELinux because the file should not have been labeled
with this type.
<p>
If you believe this is a bug, please file a bug report against this package.
� )�_)�self�avc�argsr
r
r �get_problem_description? s zplugin.get_problem_descriptionzGIf you want to fix the label.
$TARGET_PATH default label should be %s.c C s | j |d S )Nr )�if_text)r r r r
r
r �get_if_text\ s zplugin.get_if_textzTyou can run restorecon. The access attempt may have been stopped due to insufficientzh permissions to access a parent directory in which case try to change the following command accordingly.z"# /sbin/restorecon -v $TARGET_PATHc C s0 t j| t� | jd� d| _d| _td�| _d S )N�d ZgreenTzRestore
Context)r �__init__�__name__Zset_priority�levelZfixabler Zbutton_text)r r
r
r r d s
zplugin.__init__c C s6 |j s
d S |jjdkrd S |jjtkr*d S |jd�r8d S i }t|d<