HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/share/setroubleshoot/plugins/__pycache__/restorecon.cpython-39.opt-1.pyc
a

y�bZ�@s�ddlZejddd�ZejZddlTddlmZddlZddlTddlZda	dd�Z
gd	�Zd
d�ZddlZGdd
�d
e�Z
dS)�Nzsetroubleshoot-pluginsT)Zfallback)�*)�PlugincCs.ts&tt���}|���d�a|��|tvS)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:cCstD]}|�|�rdSqdS)NTF)�excluded_paths�
startswith)Ztarget_path�pathr
r
r�
excluded_path,src@sTeZdZed�ZdZed�Zdd�Zed�Zdd�Z	ed	�Z
d
Zdd�Zd
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'.
    cCstd�|dS)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.cCs|j|dS)Nr)�if_textrr
r
r�get_if_text\szplugin.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_PATHcCs0t�|t�|�d�d|_d|_td�|_dS)N�dZgreenTzRestore
Context)r�__init__�__name__Zset_priority�levelZfixablerZbutton_text)rr
r
rrds

zplugin.__init__c
Cs:|js
dS|jjdvrdS|jjtvr*dS|�d�r8dSi}t|d<t|d<t|d<t|d<t	|d<|�
|����r6|jdur�dS|jdkr�dS|jd	dkr�dSt
|j�r�dSt|jj�r�dSzNt�|j�d
�||j�d}|�d�d
}||jjk�r|�d	|f�WSWn&t�y4}zWYd}~n
d}~00dS)N)Zcifs_tZnfs_tZ	relabelto�dir�fileZlnk_fileZchr_fileZblk_file�/r�"r�:�)Zquery_environmentZtcontext�typeZ
file_typesZall_accesses_are_in�S_IFDIR�S_IFREG�S_IFLNK�S_IFCHR�S_IFBLKZ
has_tclass_in�keysZtpathrrrZmatchpathcon�stripZtclassr	Zreport�OSError)rrZrestorecon_filesZmconZ	mcon_type�er
r
r�analyzeks2
zplugin.analyzeN)r �
__module__�__qualname__rZsummaryZfix_cmdZfix_descriptionrrrZ	then_textZdo_textrr2r
r
r
rr2sr)�gettextZtranslationrZsetroubleshoot.utilZsetroubleshoot.Pluginr�os�statrrrrrrr
r
r
r�<module>s