Hacked By AnonymousFox
�
m4�fLg � �P � d dl mZ d dl mZ d dl mZ d dlZd dlZd dlZd dlZd dlZd dl m
Z d dlm
Z
mZmZmZ d dlmZ d dlZdd lmZ dd
lmZ d dlmZmZ ddlmZ dd
lmZ d dlm Z d dl!m"Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*Z* d dl+m,Z, n# e-$ r Y nw xY w G d� de� � Z.dS )� )�print_function)�absolute_import)�divisionN)�configparser)�S_IRUSR�S_IWUSR�S_IRGRP�S_IROTH)� iteritems� )�ClSelect)�ClSelectExcept)�ClPwd� clcaptain)�clprint)�utils)�ExternalProgramFailed)�BASEDIR)�get_user_prefix)�is_ea4_enabled�read_cpanel_ea4_php_conf�configure_alt_php)�da_change_user_php_ini)�ispmanager_create_user_wrapperc � � e Zd ZdZdZ ej � � rendZdZdZ d*d�Z
ed+d �� � Zd
� Z
d,d�Zd-d�Zd� Zd� Zd� Zd� Zd.d�Zd.d�Zd-d�Zd� Zd� Zd� Zd� Zd� Zd*d�Zd/d�Z ee� � Zd� Zd� Zd� Z d � Z!d!� Z"d"� Z# ee#� � Z#d#� Z$d$� Z% ee%� � Z%d0d%�Z&d&� Z'd'� Z( ee(� � Z(d(� Z)d)� Z*dS )1�ClUserSelectz/var/cagefsz
/usr/selectorz'/usr/share/cagefs-skeleton/usr/selectorz/etc/cagefs/excludez.cl.selector/selector.pathNc �\ � t j � � s!t j � d� � sdS |D ]�}| j � |� � }t j � |j d� � }t j � |� � s�| � |� � } t j |� � n.# t t f$ r}t j ||� � �d}~ww xY w t � |� � ��# t � |� � w xY w��dS )z�
Creates flags mod_lsapi_reset_me in users' home directories in order
to recreate CRIU images when php version/extensions/options have changed
For details see LVEMAN-1210
:param users: list of usernames (strings)
z/var/run/mod_lsapi/criu.enabledN�mod_lsapi_reset_me)r � in_cagefs�os�path�isfile�_clpwd�get_pw_by_name�join�pw_dir�_change_uidr �write�OSErrorr r �UnableToSaveDatar �_restore_uid)�self�users�user�pwr! �previous_user_data�es �L/opt/cloudlinux/venv/lib64/python3.11/site-packages/clselect/cluserselect.py�clean_crui_imageszClUserSelect.clean_crui_images- s9 � � �� � � �����8Y�)Z�)Z� ��F��
B�
B�D���+�+�D�1�1�B��7�<�<�� �+?�@�@�D��7�>�>�$�'�'�
B�%)�%5�%5�d�%;�%;�"�B��O�D�)�)�)�)���!6�7� C� C� C�(�9�$��B�B�B�����C���� *� !�-�-�.@�A�A�A�A��L�-�-�.@�A�A�A�A����
B�
B�
Bs* �-C�D�C-�C(�(C-�-D�D(Tc �4 � t j � t � � s;t j � � s(t
d� � |rt j d� � ndS |rut � � rgt � � }|rW |d }|� d� � s(t
d� � |rt j d� � ndS n# t $ r Y nw xY wt || dt j � � dk |� � � }|r|rt j d� � |S )
z�
Switch symlink for alt php.
Create .cagefs directory if not created
Rerurn True if error has occured
�ERROR: CageFS not installed.r T�defaultzea-phpzlERROR: system default PHP version is alt-php. PHP Selector is disabled. Use cPanel MultiPHP manager instead.Fr )� write_log� drop_perm�configure_multiphp)r r! �isdirr r r �print�sys�exitr r �
startswith�KeyErrorr �geteuid)�versionr/ �
exit_on_errorr9 �conf�default_php�errors r2 �switch_symlink_for_alt_phpz'ClUserSelect.switch_symlink_for_alt_phpF sM � � �w�}�}�W�%�%� �e�o�.?�.?� ��0�1�1�1��
���������t�� �.�"2�"2� �+�-�-�D��
��"&�y�/�K�&�1�1�(�;�;� (�� _� `� `� `�(� (��H�Q�K�K�K�K�#'�4���� � � ��D����� "�"�g��2�:�<�<�[\�K\� uG� H� H� H��� �]� ��H�Q�K�K�K��s �AC �
C�Cc � � | j r#t d� � t j d� � t j � � dk r#t d� � t j d� � | � � � }t |� � D ]M\ }}t d|� � | j � |� � }t � ||dd�� � �Nd S )NzPERROR: this option does not work in "single user" mode (when CageFS is disabled)r r zERROR: root privileges requiredzProcessing userF)rB r9 )�without_cagefsr; r<