HEX
Server: LiteSpeed
System: Linux catuipe.dhs10.info 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: paradatacom (1125)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //usr/share/cagefs/__pycache__/cagefshooks.cpython-311.opt-1.pyc
�

��lj�,���dZddlmZddlmZddlmZddlmZddlmZej��ddl	Tddl
Z
ddlZdd	lm
Z
dd
lmZmZmZddlmZddlmZmZd
ZdZdZdZdZdZdZdZedzezdzezZdZ ddiddiddiddid�Z!d�Z"d0d �Z#d!�Z$d"�Z%d#�Z&d$�Z'd%�Z(d&�Z)d'Z*d(Z+ed)ej,�*��Z-d+�Z.d,�Z/d-�Z0d.�Z1d/�Z2dS)1zr
Now this package only cleans up old files and does not install new.
All new hooks must be installed using cllib.
�)�absolute_import)�division)�print_function)�unicode_literals)�standard_library)�*N)�print_error)�	getCPName�
PLESK_NAME�DIRECTADMIN_NAME)�"remove_hook_by_str_id_and_location)�Flag�FlagBehaviorz#USERDEL_CMD /usr/bin/userdel.cagefsz/usr/share/cagefs-plugins/hookszuser_create_post.shzuser_restore_post.shzuser_destroy_post.shz?/usr/share/cagefs-plugins/hooks/directadmin/user_create_post.shz@/usr/share/cagefs-plugins/hooks/directadmin/user_restore_post.shz@/usr/share/cagefs-plugins/hooks/directadmin/user_destroy_post.shz
/directadmin/�/z%/usr/share/cagefs-plugins/hooks/plesk�SCRIPT_FILEzcagefs_plesk_hs_created.shzcagefs_plesk_hs_updated.shzcagefs_plesk_hs_deleted.shzcagefs_plesk_dm_updated.sh)�phys_hosting_create�phys_hosting_update�phys_hosting_delete�
domain_updatec�v�t|d��}|���}|���|S)N�r)�open�	readlines�close)�	file_name�f�contents   �_/builddir/build/BUILDROOT/cagefs-7.6.44-1.el8.cloudlinux.x86_64/usr/share/cagefs/cagefshooks.py�get_file_contentr5s0���Y����A��k�k�m�m�G��G�G�I�I�I��N��wc��d�|��}t||��}|�|��|���dS)N�)�joinr�writer)rr�open_methodrs    r�write_file_contentr'=sE���g�g�g���G��Y��$�$�A��G�G�G�����G�G�I�I�I�I�Ir c��	tdd��}|���}|���d}d}d}|D]c}|�d��r||}tdz||<n6|�d��r|�d��dkr|}|d	z
}�d|�t��s�|dkr(t
|��dkr||}tdz||<t
|��dkrtd|��|�d��sV|�t��dkr:td
|�dd���	����dSdSdStddtzdzd��dSdS#ttf$r(}tdt|����Yd}~dSd}~wwxYw)
N�/etc/login.defsrrr#����USERDEL_CMD�
�#��/etc/cagefs/userdel.old�az#Failed to install USERDEL_CMD hook:)rrr�
startswith�USERDEL_COMMAND�find�lenr'�replace�strip�OSError�IOErrorr	�str)rr�i�userdel_cmd_old�
na_userdel�line�es       r�user_del_hook_installr?Es(��C��"�C�(�(���+�+�-�-��	���	�	�	�
�����
��	�	�D����}�-�-�
�")�!�*��,�t�3���
������s�#�#�
��	�	�-�(@�(@�B�(F�(F��
�
��F�A�A��)�)�/�:�:�	Z��R���C��$8�$8�A�$=�$=�")�*�"5��&5��&<��
�#��?�#�#�q�(�(�"�#4�g�>�>�>�'�2�2�3�7�7�v�o�>R�>R�Sb�>c�>c�gi�>i�>i�&�'@�/�BY�BY�Zg�ik�Bl�Bl�Br�Br�Bt�Bt�u�u�u�u�u�v�v�>i�>i�#�#4�d�_�6L�t�6S�UX�Y�Y�Y�Y�Y�	Z�	Z��
�W��C�C�C��9�3�q�6�6�B�B�B�B�B�B�B�B�B�����C���s�E8F �F � G�1G�Gc�f�	tdd��}|���}|���d|z}n#t$rd}YnwxYw	t	jd��n#t$rYnwxYw	tdd��}|���}|���d}|D]/}|�t��dkr
|dz||<n|d	z
}�0td|��dS#ttf$r(}td
t|����Yd}~dSd}~wwxYw)Nr/rzUSERDEL_CMD r#r)rr*r,r.z&Failed to remove hook for DirectAdmin:)
r�readrr8�os�remover7rr3r2r'r	r9)rr;rr:r=r>s      r�user_del_hook_removerDis{����*�C�0�0���&�&�(�(��	���	�	�	�(�?�:����������������
�
�	�+�,�,�,�,���
�
�
���
����
F��"�C�(�(���+�+�-�-��	���	�	�	�
���	�	�D��y�y��)�)�R�/�/�,�t�3���
���
��F�A�A��,�g�6�6�6�6�6���W��F�F�F��<�c�!�f�f�E�E�E�E�E�E�E�E�E�����F���s<�=A�A�A�A(�(
A5�4A5�9A<C7�7D0�D+�+D0c�x�ddlm}|tt��|tt
��|tt��	tj	�
t��sdStt��}d}d}g}|D]\}|�
d��dkrd}|s|�||��|�
d��dkr|rd}|dz
}�]tt|��dS#t t"f$r(}t%d	t'|����Yd}~dSd}~wwxYw)
Nr)�remove_da_hookFz9/usr/sbin/cagefsctl --set-default-user-status "$username"r*T�fir.z*Failed to remove old hook for DirectAdmin:)�(clcommon.public_hooks.bundle.directadminrF�DA_CREATE_USER_HOOK_FILENAME�DA_CREATE_USER_HOOK_CMD�DA_REMOVE_USER_HOOK_FILENAME�DA_REMOVE_USER_HOOK_CMD�DA_RESTORE_USER_HOOK_FILENAME�DA_RESTORE_USER_HOOK_CMDrB�path�isfile�DA_HOOK_DESTrr3�appendr'r7r8r	r9)rFrr:�start_delete�new_contentr=r>s       r�da_hooks_removerU�sk��G�G�G�G�G�G��N�/�1H�I�I�I��N�/�1H�I�I�I��N�0�2J�K�K�K�J��w�~�~�l�+�+�	��F�"�<�0�0��
�������
	�
	�D��y�y�T�U�U�Y[�[�[�#���
/��"�"�7�1�:�.�.�.��	�	�$���2�%�%�<�%�$��
��F�A�A��<��5�5�5�5�5���W��J�J�J��@�#�a�&�&�I�I�I�I�I�I�I�I�I�����J���s�
$D�0BD�D9�D4�4D9c�F�tD]}t|t����dS)z;
    Remove all Plesk hooks installed by this package.
    )�bin_dirN)�_OLD_CAGEFS_PLESK_HOOKSr
�_OLD_CAGEFS_PLESK_HOOKS_DIR)�hooks r�plesk_hooks_remover[�s8��(�V�V��*�4�9T�U�U�U�U�U�V�Vr c�
�	tj�|��sdSd}|�ddddt	t|����g��dz}t
|d��}|���}|���d}tt|����D�]�}||���}|�d	���sb|�
��}	t|	��}
|
d
k�r8|	ddk�r+|
d
kr+|dzt	t|����z}|dz||<n�|
d
kr+|dzt	t|����z}|dz||<n�|
dkr�	t|	d
��}n#t$r|||<d}Yn�wxYw|t|��kr}|�|	d|	d|	d|	d
t	t|����g��}|
dkr#||z|�|	dd���z}|dz||<d}n���|r@t
|d��}|D]}|�|���|���dSt
|d��}|�|��|���dS#t t"f$r+}t%d|zt	|����Yd}~dSd}~wwxYw)Nz      �session�requiredz
pam_lve.so�500r,rFr-��z      500     �z     �Trr.�r!r0z!configure_pam_lve error for file )rBrOrPr$r9�intrrr�ranger4r6r1�split�
ValueErrorr%r8r7r	)
�
configfile�enable�SPACE�DEFAULTr�lines�foundr:r=�s�l�vr>s
             r�configure_pam_lverr�s��-N��w�~�~�j�)�)�	��F����*�*�i��\�5�#�c�RX�k�k�JZ�JZ�[�\�\�_c�c����S�!�!�����
�
��	���	�	�	����s�5�z�z�"�"�	�	�A���8�>�>�#�#�D��?�?�3�'�'�
��J�J�L�L����F�F����F�F��1���!5�!5��A�v�v�#�&6�6��S��[�[�9I�9I�I��#'�$�;��a����a���#�g�~��C��K�K�0@�0@�@��#'�$�;��a����a���"� #�A�a�D�	�	�A�A��)�"�"�"�'.�E�!�H�$(�E�!�E�E�"������F���+�+�#(�:�:�q��t�Q�q�T�1�Q�4��1��s�3�v�;�;�GW�GW�.X�#Y�#Y�D� �A�v�v�'+�e�|�e�j�j��1�2�2��6G�6G�'G��'+�d�{�E�!�H� �E��E���	��Z��%�%�A��
�
������
�
�
�
�
�G�G�I�I�I�I�I��Z��%�%�A�
�G�G�G����
�G�G�I�I�I�I�I���W��N�N�N��7�*�D�c�!�f�f�M�M�M�M�M�M�M�M�M�����N���sH�K�E!K�F�K�F0�,K�/F0�0CK�9K�L� K=�=Lc�$�td|��td|��tj�d��rtd|��n/tj�d��rtd|��td|��dS)Nz/etc/pam.d/sshdz
/etc/pam.d/suz/etc/pam.d/crondz/etc/pam.d/cronz/etc/pam.d/atd)rrrBrOrP)rjs r�configure_pam_lve_for_cagefsrt�s����'��0�0�0��o�v�.�.�.�	�w�~�~�(�)�)�5��,�f�5�5�5�5�	����)�	*�	*�5��+�V�4�4�4��&��/�/�/�/�/r )z%/usr/lib/systemd/system/user@.servicez!/lib/systemd/system/user@.servicez
user@.servicezdisable-systemd-user-mask)�	flag_name�
flag_behaviorc�>�td�tD����S)z�True only on platforms that ship the per-user manager template
    (CL8+/Ubuntu). CL7/CL7h (systemd 219) ship none, so masking is a no-op.c3�TK�|]#}tj�|��V��$dS)N)rBrO�exists)�.0�ps  r�	<genexpr>z0_has_per_user_systemd_manager.<locals>.<genexpr>�s0����B�B�Q�r�w�~�~�a� � �B�B�B�B�B�Br )�any�_USER_MANAGER_TEMPLATES�r r�_has_per_user_systemd_managerr��s"���B�B�*A�B�B�B�B�B�Br c��dg|�}	tj|dd���}nK#t$r>}tdd�|����t|����Yd}~dSd}~wwxYw|jdkrOtd	d�|��|jfz|jp|jpd
�	����dSdS)z�Run ``systemctl <args>`` and surface a non-zero exit / failure to launch
    via print_error (otherwise a failed mask/reload would pass silently and the
    CLOS-4517 bypass could stay open). Returns True on success.z/bin/systemctlT)�capture_output�textz)mask_systemd_user_manager: failed to run � NFrz,mask_systemd_user_manager: %r exited with %dr#)
�
subprocess�runr7r	r$r9�
returncode�stderr�stdoutr6)�args�cmd�resultr>s    r�_run_systemctlr�s����
#�d�
#�C�����D�t�D�D�D����������S�X�X�c�]�]�]�T�VY�Z[�V\�V\�]�]�]��u�u�u�u�u�����������A����:�c�h�h�s�m�m�V�M^�=_�_�
�]�
1�f�m�
1�r�8�8�:�:�	
�	
�	
��u��4s��
A'�3A"�"A'c��t��sdS|rtjsd}|rdnd}t|t��rtd��dS)a�Disable (enable=True) or restore (enable=False) the per-user systemd
    manager host-wide by masking the ``user@.service`` template.

    Reason: the per-user manager bypasses both the CageFS and LVE cages
    (CLOS-4517), so it is disabled outright.

    Honors the ``disable-systemd-user-mask`` flag: when set, the mask is never
    applied, and a mask we previously installed is removed.

    Uses ``systemctl mask``/``unmask``, which manage the
    ``/etc/systemd/system/user@.service -> /dev/null`` symlink themselves;
    ``unmask`` only ever removes a mask symlink, so an admin-provided unit is
    never clobbered. No-op where no per-user manager template exists.NF�mask�unmaskz
daemon-reload)r��_SYSTEMD_USER_MASK_FLAG�enabledr��_USER_MANAGER_UNIT)rj�actions  r�mask_systemd_user_managerr�sg��)�*�*������-�5�����
+�V�V�8�F��f�0�1�1�(�	��'�'�'�
�Fr c���t��td��td��t��}|tkrt��|tkrt��dSdS)NT)r?rtr�r
rrUrr[)�cp_names r�HooksInstallr�0sr������ ��&�&�&��d�#�#�#��k�k�G��"�"�"������*����������r c�^�t��td��td��dS)NF)rDrtr�rr r�HooksRemover�=s0������ ��'�'�'��e�$�$�$�$�$r )r!)3�__doc__�
__future__rrrr�futurer�install_aliases�builtinsrBr��secureior	�clcommon.cpapir
rr�"clcommon.public_hooks.bundle.pleskr
�feature_managerrrr2�SOURCE_HOOKS_DIRrIrMrKrJrNrLrQrYrXrr'r?rDrUr[rrrtr~r��DISABLE_ON_PRESENTr�r�r�r�r�r�rr r�<module>r�s�����'�&�&�&�&�&�������%�%�%�%�%�%�'�'�'�'�'�'�#�#�#�#�#�#� �� �"�"�"�����	�	�	�	����� � � � � � �B�B�B�B�B�B�B�B�B�B�Q�Q�Q�Q�Q�Q�.�.�.�.�.�.�.�.�8��4�� 5�� 6��5��[��]��\���/�1�4P�P�SV�V�Yu�u��F��)�+G�H�)�+G�H�)�+G�H�)�+G�H�	���������� C� C� C�HF�F�F�>J�J�J�@V�V�V�.N�.N�.N�b0�0�0���%��
�$�)��1�����C�C�C����&���:
�
�
�%�%�%�%�%r