????

Your IP : 3.14.141.163


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/cllimits/__pycache__/cagefs_lib.cpython-311.pyc

�

�o�e����ddlmZddlZddlZddlmZddlmZddl	m
Z
mZGd�de��ZGd�d	��Z
dS)
�)�absolute_importN)�exec_utility)�FormattedException)�run_command�ExternalProgramFailedc��eZdZdS)�CageFsExceptionN)�__name__�
__module__�__qualname__���J/opt/cloudlinux/venv/lib64/python3.11/site-packages/cllimits/cagefs_lib.pyr	r	s�������Drr	c�t�eZdZdZdd�Zed���Zd�Zd�Zdd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�ZdS)�CageFsz/usr/sbin/cagefsctlNc�X�d|_d|_|p|���|_dS�NF)�_cagefs_enabled_users�_is_cagefs_error�_create_dummy_logger�_logger)�self�loggers  r�__init__zCageFs.__init__s.��%)��"� %����<��!:�!:�!<�!<����rc��tjt��}d|_|�tj����|Sr)�logging�	getLoggerr
�	propagate�
addHandler�NullHandler)rs rrzCageFs._create_dummy_loggers<���"�8�,�,�� ������'�-�/�/�0�0�0��
rc�J�tj�|j��S)z^
        Get CageFS presence flag
        :return: True/False - Cagefs present/absent
        )�os�path�isfile�
_UTILITY_PATH�rs r�is_cagefs_presentzCageFs.is_cagefs_present's��
�w�~�~�d�0�1�1�1rc�<�|���||jvS)z�
        Get User status in CageFs
        :param username: User name
        :return: True/False - user enabled/disabled in CageFs
        )�
_load_infor)r�usernames  r�get_user_statuszCageFs.get_user_status/s"��	
�������4�5�5�5rFc���|sF|���|r|�|��rdS|s|�|��sdS|rd}nd}|�||g��dS)z�
        Set user status in CageFs
        :param str username: User name
        :param bool status: new user status - True/False --> enable/disable
        :param bool ignore_cache: ignore data caching
        :return: None
        Nz--enablez	--disable)r)r+�_get_cagefsctl_out)rr*�status�ignore_cache�
cagefsctl_args     r�set_user_statuszCageFs.set_user_status9s����	��O�O�����
�$�.�.�x�8�8�
����
�$�"6�"6�x�"@�"@�
����	(�&�M�M�'�M������ 9�:�:�:�:�:rc�^�|j�dS|���r|jrtdddid����t	��|_|�dg��}|�d��}|D]3}d|vr�|j�|������4dS)	zD
        Loads users info from Cagefs
        :return: None
        Nz%(util)s is disabled�util�CageFS��message�contextz--list-enabled�
zenabled user)	rr'rr	�listr-�split�append�strip)r�s_cagefs_out�s_enabled_users_parts�lines    rr)zCageFs._load_infoPs����%�1��F��%�%�'�'�	C�4�+@�	C�!�.D�/5�x�.@�#B�#B�C�C�
C�%)�V�V��"��.�.�0@�/A�B�B�� ,� 2� 2�4� 8� 8��)�	<�	<�D���%�%���&�-�-�d�j�j�l�l�;�;�;�;�	<�	<rc�2�|�dg��}|S)z(
        Just initialize cagefs
        z--init�r-�r�outs  r�initialize_cagefszCageFs.initialize_cagefses���%�%�x�j�1�1���
rc��	ddg}t|��}|S#t$r!}tt|�����d}~wwxYw)N�	cagefsctlz--enable-all)rrr	�str�r�cmdrC�errs    r�set_enabled_modezCageFs.set_enabled_modelsV��	,���/�C��c�"�"�C��J��$�	,�	,�	,�!�#�c�(�(�+�+�+�����	,���s��
A�=�Ac��|�dg��}|�d��d���}|S)Nz--display-user-mode�:�)r-r:r<)rrC�modes   r�
get_user_modezCageFs.get_user_modews>���%�%�'<�&=�>�>���y�y��~�~�a� �&�&�(�(���rc�2�|�dg��dS)Nz
--toggle-moderAr&s r�toggle_user_modezCageFs.toggle_user_mode}s������ 1�2�2�2�2�2rc�6�	ddg}|j�dd�|����t|��}|S#t$rI}|j�dt|����t
t|�����d}~wwxYw)NrFz--enable-cagefszRunning "%s"� z cagefsctl exited with error "%s")r�info�joinrrrGr	rHs    r�
enable_cagefszCageFs.enable_cagefs�s���	,�� 1�2�C��L���n�c�h�h�s�m�m�<�<�<��c�"�"�C��J��$�	,�	,�	,��L���@�#�c�(�(�K�K�K�!�#�c�(�(�+�+�+�����	,���s�AA�
B�AB�Bc�j�|j�dd�|����|���st	dddid����t|j|d���\}}}|p|}|d	ksd
|vr3|j�d||f��d|_t	|���|S)NzRunning "cagefsctl %s"rTz%(util)s is not installedr3r4r5T)�stderrrzError:z1Cagefs exited with exit code "%s" and output "%s")rrUrVr'r	rr%r)rrI�ret_code�s_stdout�s_stderrr=s      rr-zCageFs._get_cagefsctl_out�s�������2�C�H�H�S�M�M�B�B�B��%�%�'�'�	C�!�.I�/5�x�.@�#B�#B�C�C�
C�'3�D�4F��TX�'Y�'Y�'Y�$��(�H��+�8���q�=�=�H��4�4��L���Q�T\�^j�Sk�l�l�l�$(�D�!�!�,�/�/�/��rc�2�|�dg��}|S)Nz--rebuild-alt-php-inirArBs  r�rebuild_alt_php_inizCageFs.rebuild_alt_php_ini�s���%�%�'>�&?�@�@���
r)N)F)r
rrr%r�staticmethodrr'r+r1r)rDrKrPrRrWr-r^r
rrrrs�������)�M�=�=�=�=�����\��2�2�2�6�6�6�;�;�;�;�.<�<�<�*���	,�	,�	,����3�3�3�,�,�,��������rr)�
__future__rr�os.pathr"�cllimits.libr�clcommon.clexceptionr�clcommon.utilsrrr	rr
rr�<module>res���'�&�&�&�&�&���������%�%�%�%�%�%�3�3�3�3�3�3�=�=�=�=�=�=�=�=�	�	�	�	�	�(�	�	�	�F�F�F�F�F�F�F�F�F�Fr