91\hO7_ d dl Z d dlZd dlZdZdZ G d de Z G d d Zd Zdd Z dd Z d Zd ZddZ dS ) Nz/etc/cagefs/cagefs.mpz/usr/sbin/cagefsctlc e Zd Zd Zd ZdS )CagefsMpConflictc 2 d|dt d|d| _ d S )NzConflict in adding 'z' to z5 because of pre-existing alternative specification: '')CAGEFS_MP_FILENAME_msg)selfnew_item existing_items T/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/subsys/clcagefs.py__init__zCagefsMpConflict.__init__ s, xx+++]]] < c | j S N)r r s r __str__zCagefsMpConflict.__str__ s yr N)__name__ __module____qualname__r r r r r r s2 r r c e Zd ZdZdZdZd Zd Zd Ze d Z d Zd Zd Z e d Ze d Ze d Zd Zd Zd ZdS )CagefsMpItems @!%r !c |dd dk r d| _ dS | dk r d| _ dS || _ dS )zConstructor :param arg: Is either path to add to cagefs.mp or a raw line is read from cagefs.mp :param prefix: The same as adding prefix '!' to arg before passing it to ctorN #r ) _path_specstrip)r args r r zCagefsMpItem.__init__# sI rr7d??"DOOO YY[[C "DOOO!DOOOr c \ | dk r|d| j |fz | _ | S )z%Specify mode as in fluent constructor @Ns %s,%03o)prefixr )r modes r r# zCagefsMpItem.mode2 s4 ;;==D T%5(DOT+BBDOr c 4 t j | j S r )osfsdecoder r s r r zCagefsMpItem.__str__: s {4?+++r c 8 | dk rdS | d dk r| dz S | S )Nr // r )paths r _add_slashzCagefsMpItem._add_slash= s. 3;;48w$;r c d t | }| s| rdS t | }t | }| | S )NF)r _adoptis_dummyr, r+ startswith)r anotheradopted this_pathtest_preexist_in_paths r pre_exist_inzCagefsMpItem.pre_exist_inE s %%g.. ==?? g..00 5 ++DIIKK88 , 7 7 G G##$9:::r c t | }| s| rdS | | k rdS t j t j gi}g }| | | | v S )NFT)r r. r/ r" _PREFIX_MOUNT_RW_PREFIX_MOUNT_ROget)r existingr2 prefix_compatibility_mapnull_optionss r is_compatible_by_prefix_withz)CagefsMpItem.is_compatible_by_prefix_withP s %%h// ==?? g..00 5;;==GNN,,,,4 )L,I+J$ {{}} 8 < <NNl! ! r c | j d u S r r r s r r/ zCagefsMpItem.is_dummyc s $&&r c N t | t r| S t | S r ) isinstancer )xs r r. zCagefsMpItem._adoptf s% a&&