HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/cllimits/__pycache__/cagefs_lib.cpython-37.pyc
B

�[���j3�@sfddlmZddlZddlZddlmZddlmZddl	m
Z
mZGdd�de�ZGdd	�d	�Z
dS)
�)�absolute_importN)�exec_utility)�FormattedException)�run_command�ExternalProgramFailedc@seZdZdS)�CageFsExceptionN)�__name__�
__module__�__qualname__�rr�py/cllimits/cagefs_lib.pyrsrc@s�eZdZdZddd�Zedd��Zdd�Zd	d
�Zddd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS) �CageFsz/usr/sbin/cagefsctlNcCsd|_d|_|p|��|_dS)NF)�_cagefs_enabled_users�_is_cagefs_error�_create_dummy_logger�_logger)�self�loggerrrr�__init__szCageFs.__init__cCs"t�t�}d|_|�t���|S)NF)�loggingZ	getLoggerrZ	propagateZ
addHandlerZNullHandler)rrrrrs
zCageFs._create_dummy_loggercCstj�|j�S)z^
        Get CageFS presence flag
        :return: True/False - Cagefs present/absent
        )�os�path�isfile�
_UTILITY_PATH)rrrr�is_cagefs_present'szCageFs.is_cagefs_presentcCs|��||jkS)z�
        Get User status in CageFs
        :param username: User name
        :return: True/False - user enabled/disabled in CageFs
        )�
_load_infor)r�usernamerrr�get_user_status/szCageFs.get_user_statusFcCsP|s0|��|r|�|�rdS|s0|�|�s0dS|r:d}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)rr�_get_cagefsctl_out)rrZstatusZignore_cacheZ
cagefsctl_argrrr�set_user_status9s	zCageFs.set_user_statuscCsx|jdk	rdS|��r|jr.tdddid���t�|_|�dg�}|�d�}x&|D]}d|kr`qR|j�|���qRWdS)	zD
        Loads users info from Cagefs
        :return: None
        Nz%(util)s is disabled�util�CageFS)�message�contextz--list-enabled�
zenabled user)	rrrr�listr�split�append�strip)r�s_cagefs_outZs_enabled_users_parts�linerrrrPs


zCageFs._load_infocCs|�dg�}|S)z(
        Just initialize cagefs
        z--init)r)r�outrrr�initialize_cagefseszCageFs.initialize_cagefsc
CsHyddg}t|�}|Stk
rB}ztt|���Wdd}~XYnXdS)N�	cagefsctlz--enable-all)rrr�str)r�cmdr+�errrrr�set_enabled_modelszCageFs.set_enabled_modecCs"|�dg�}|�d�d��}|S)Nz--display-user-mode�:�)rr&r()rr+�moderrr�
get_user_modewszCageFs.get_user_modecCs|�dg�dS)Nz
--toggle-mode)r)rrrr�toggle_user_mode}szCageFs.toggle_user_modec
Csny(ddg}|j�dd�|��t|�}|Stk
rh}z"|j�dt|��tt|���Wdd}~XYnXdS)Nr-z--enable-cagefszRunning "%s"� z cagefsctl exited with error "%s")r�info�joinrrr.r)rr/r+r0rrr�
enable_cagefs�szCageFs.enable_cagefscCs�|j�dd�|��|��s.tdddid���t|j|dd�\}}}|pJ|}|d	ks\d
|kr||j�d||f�d|_t|��|S)NzRunning "cagefsctl %s"r7z%(util)s is not installedr r!)r"r#T)�stderrrzError:z1Cagefs exited with exit code "%s" and output "%s")rr8r9rrrrr)rr/Zret_codeZs_stdoutZs_stderrr)rrrr�szCageFs._get_cagefsctl_outcCs|�dg�}|S)Nz--rebuild-alt-php-ini)r)rr+rrr�rebuild_alt_php_ini�szCageFs.rebuild_alt_php_ini)N)F)rr	r
rr�staticmethodrrrrrr,r1r5r6r:rr<rrrrr
s




r
)Z
__future__rrZos.pathrZcllimits.librZclcommon.clexceptionrZclcommon.utilsrrrr
rrrr�<module>
s