관리-도구
편집 파일: restorecon.cpython-39.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<