File manager - Edit - /opt/cloudlinux/venv/lib/python3.11/site-packages/clcagefslib/webisolation/__pycache__/jail_utils.cpython-311.pyc
Back
� ��i� � �� � d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dl m Z d dlmZ dZ dZd � Zd efd�Zded efd �Zded efd�Zded efd�Zd� Zd� Zded efd�Zd� ZdS )� N)�Path)�ClPwd)�drop_privileges)�get_user_var_cagefs_path)� write_via_tmpl %#D�s�_ l � c �N � t | � � }t j |� d�� � S )Nz/.cagefs/isolates.mounts)r �pathlibr )�user� cagefs_dirs ��/builddir/build/BUILDROOT/cagefs-7.6.29-2.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcagefslib/webisolation/jail_utils.py�get_jail_config_pathr s( � �)�$�/�/�J��<�:�?�?�?�@�@�@� � document_rootc �l � t }| � d� � D ]}||z }|t z dz }�|d�S )z� Generates unique id for an isolate website using FNV-1a 64-bit hash. FNV-1a has excellent avalanche properties and distribution. Must match the docroot_hash() function in jail C code. zutf-8l ���� �016x)�_FNV_OFFSET_BASIS�encode� _FNV_PRIME)r � hash_value�chars r �get_website_idr sP � � #�J��$�$�W�-�-� D� D���d�� � �:�-�1C�C� � ����r r c �8 � t � � � | � � }t |� � }t t | � � � � dz }||z }|� ddd�� � |� dd�� � t d� � }|� d�}t |||� � t j |d � � t j ||j d � � |� d�}t |||� � t j |d� � t j |d d � � d S )z� Create website token directory structure and files in /var/cagefs. Creates: - /var/cagefs/<user>/.cagefs/website/<website_id>/ - token directory �.cagefs/websiteTi� ��exist_ok�parents�modei� )r r � z/.cagefs.token� r z/.cagefs.websitei$ N)r �get_pw_by_namer r r �mkdir�_generate_passwordr �os�chmod�chown�pw_uid) r r �pw� website_id�website_base_dir�website_dir�token�token_file_path�docroot_file_paths r �create_website_token_directoryr. + s2 � � ��� � �� %� %�B�� �.�.�J� �4�T�:�:�;�;�>O�O��"�Z�/�K� ���D�$�U��C�C�C����t�%��0�0�0��r�"�"�E� %�4�4�4�O��+���6�6�6��H�_�e�$�$�$��H�_�b�i��+�+�+� '�8�8�8���+�0�-�@�@�@� �H� ��&�&�&��H� ��1�%�%�%�%�%r c �\ � t � � � | � � }t |j � � � � � sdS t t |j |� � � � }t | � � 5 |� ddd�� � ddd� � dS # 1 swxY w Y dS )z� Create overlay storage directory in user's home. Creates: - <homedir>/.cagefs/websites/<website_id>/ - storage base for overlays Drops privileges to user before creating to ensure proper ownership. NTi� r )r r r �pw_dir�exists�full_website_pathr r! )r r r'