File: //proc/self/root/usr/share/setroubleshoot/plugins/__pycache__/restorecon.cpython-39.opt-1.pyc
a
y�bZ � @ s� d dl Z e jddd�Zej Zd dlT d dlmZ d dlZd dlT d dlZda dd� Z
g d �Zd
d� Zd dlZG dd
� d
e�Z
dS )� Nzsetroubleshoot-pluginsT)Zfallback)�*)�Pluginc C s. t s&tt�� �}|�� �d�a |�� | t v S )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/z/proc/z/memfd:c C s t D ]}| �|�r dS qdS )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
d
Zdd� Zd
d� 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_textr r
r
r �get_if_text\ s zplugin.get_if_textz�you can run restorecon. The access attempt may have been stopped due to insufficient 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 �| t� | �d� 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 s: |j s
d S |jjdv rd S |jjtvr*d S |�d�r8d S i }t|d<