403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/fs/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/fs/__pycache__/permissions.cpython-312.pyc
�

��obY&����dZddlmZmZddlZddlmZddlZddlmZejrddlm
Z
mZmZm
Z
mZmZd�ZGd	�d
e�Zej&Gd�de��Zy)
z Abstract permissions container.
�)�print_function�unicode_literalsN)�Iterable�)�Text)�Iterator�List�Optional�Tuple�Type�Unionc�,�tj|�S)z*Make a mode integer from an initial value.)�Permissions�get_mode)�inits �0/usr/lib/python3/dist-packages/fs/permissions.py�	make_moders������%�%�c�$�eZdZdZd�Zdd�Zd�Zy)�
_PermPropertyz1Creates simple properties to get/set permissions.c�>�||_dj|�|_y)NzBoolean for '{}' permission.)�_name�format�__doc__)�self�names  r�__init__z_PermProperty.__init__s����
�5�<�<�T�B��rNc��|j|vS�N)r)r�obj�obj_types   r�__get__z_PermProperty.__get__s���z�z�S� � rc�v�|r|j|j�y|j|j�yr)�addr�remove)rr �values   r�__set__z_PermProperty.__set__#s%����G�G�D�J�J���J�J�t�z�z�"rr)�__name__�
__module__�__qualname__rrr"r'�rrrrs��;�C�
!�#rrc���eZdZdZgd�ZeD���cgc]\}}|��	c}}}Z								d#d�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Ze
d��Ze
d��Ze
d$d
��Ze
d��Zd�Zd�Zd�Zed��Zej.d��Zed�Zed�Zed�Zed�Zed�Zed�Zed�Zed�Z ed�Z!ed�Z"ed�Z#ed�Z$d �Z%d!�Z&d"�Z'ycc}}}w)%ra�An abstraction for file system permissions.

    Permissions objects store information regarding the permissions
    on a resource. It supports Linux permissions, but is generic enough
    to manage permission information from almost any filesystem.

    Example:
        >>> from fs.permissions import Permissions
        >>> p = Permissions(user='rwx', group='rw-', other='r--')
        >>> print(p)
        rwxrw-r--
        >>> p.mode
        500
        >>> oct(p.mode)
        '0o764'

    ))�setuidi)�setguidi)�stickyi)�u_r�)�u_w�)�u_x�@)�g_r� )�g_w�)�g_x�)�o_r�)�o_w�)�o_xrNc	�
�|�t|�|_n�|�+|jD�	�
chc]
\}	}
||
zs�|	��c}
}	|_net�x}|_|jd�|xsdD��|jd�|xsdD��|jd�|xsdD��|r|jj	d�|r|jj	d�|r|jj	d�yycc}
}	w)	a�Create a new `Permissions` instance.

        Arguments:
            names (list, optional): A list of permissions.
            mode (int, optional): A mode integer.
            user (str, optional): A triplet of *user* permissions, e.g.
                ``"rwx"`` or ``"r--"``
            group (str, optional): A triplet of *group* permissions, e.g.
                ``"rwx"`` or ``"r--"``
            other (str, optional): A triplet of *other* permissions, e.g.
                ``"rwx"`` or ``"r--"``
            sticky (bool, optional): A boolean for the *sticky* bit.
            setuid (bool, optional): A boolean for the *setuid* bit.
            setguid (bool, optional): A boolean for the *setguid* bit.

        Nc3�2K�|]}|dk7s�	d|z���y�w)�-�u_Nr+��.0�ps  r�	<genexpr>z'Permissions.__init__.<locals>.<genexpr>qs����B�a��c�����B���
�
�c3�2K�|]}|dk7s�	d|z���y�w)rC�g_Nr+rEs  rrHz'Permissions.__init__.<locals>.<genexpr>r�����C�a�!�s�(����C�rIc3�2K�|]}|dk7s�	d|z���y�w)rC�o_Nr+rEs  rrHz'Permissions.__init__.<locals>.<genexpr>srMrIr/r-r.)�set�_perms�_LINUX_PERMS�updater$)r�names�mode�user�group�otherr/r-r.r�mask�permss            rrzPermissions.__init__Os���8���e�*�D�K�
�
�26�2C�2C�S�J�D�$�t�d�{�4�S�D�K�"%�%�'�E�D�K��L�L�B�4�:�2�B�B��L�L�C�5�;�B�C�C��L�L�C�5�;�B�C�C���K�K�O�O�H�%���K�K�O�O�H�%���K�K�O�O�I�&���Ts
�
C?�C?c����jj�j�s<djd�t	�j�D��}dj|�S�fd�}dj|dd�|dd	�|d
d�f�}dj|dd�|d
d	�|dd�f�}dj|dd�|dd	�|dd�f�}g}d}|j|||�}|j
|��jr|j
d��jr|j
d��jr|j
d�djdj|��S)Nz, c3�>K�|]}dj|����y�w)z'{}'N)rrEs  rrHz'Permissions.__repr__.<locals>.<genexpr>s����"Q��6�=�=��#3�"Q�s�zPermissions(names=[{}])c�(��|�jvr|SdS)NrJ�rQ)�permrrs  �r�_checkz$Permissions.__repr__.<locals>._check�s����4�;�;�.�4�6�B�6rrJr0�rr2�wr4�xr6r8r:r<r>r@z!user='{}', group='{}', other='{}'zsticky=Truezsetuid=Truezsetguid=TruezPermissions({}))	rQ�issubset�_LINUX_PERMS_NAMES�join�sortedr�appendr/r-)	r�
_perms_strr`rVrWrX�args�_fmt�basics	`        r�__repr__zPermissions.__repr__|sH����{�{�#�#�D�$;�$;�<����"Q�V�D�K�K�=P�"Q�Q�J�,�3�3�J�?�?�	7��w�w��u�c�*�F�5�#�,>��u�c�@R�S�T�������s�+�V�E�3�-?���s�AS�T�U�������s�+�V�E�3�-?���s�AS�T�U����2�����D�%��/�����E���;�;��K�K�
�&��;�;��K�K�
�&��;�;��K�K��'� �'�'��	�	�$��8�8rc�"�|j�Sr)�as_str�rs r�__str__zPermissions.__str__�s���{�{�}�rc�,�t|j�Sr)�iterrQrps r�__iter__zPermissions.__iter__�s���D�K�K� � rc��||jvSrr^)r�
permissions  r�__contains__zPermissions.__contains__�s���T�[�[�(�(rc�n�t|t�r|j�}n|}|j�|k(Sr)�
isinstancer�dump)rrXrTs   r�__eq__zPermissions.__eq__�s-���e�[�)��J�J�L�E��E��y�y�{�e�#�#rc�&�|j|�Sr)r{)rrXs  r�__ne__zPermissions.__ne__�s���;�;�u�%�%�%rc�6�|dd}|dd}|dd}||||��S)z$Parse permissions in Linux notation.N���	)rVrWrXr+)�cls�lsrVrWrXs     r�parsezPermissions.parse�s4���"�1�v���1�Q����1�Q�����E��7�7rc��||��S)z%Load a serialized permissions object.�rTr+)r��permissionss  r�loadzPermissions.load�s����%�%rc��|�	|d��St||�r|St|t�r	||��St|t�r	||��Std��)a�Create a permissions object from an initial value.

        Arguments:
            init (int or list, optional): May be None to use `0o777`
                permissions, a mode integer, or a list of permission names.

        Returns:
            int: mode integer that may be used for instance by `os.makedir`.

        Example:
            >>> Permissions.create(None)
            Permissions(user='rwx', group='rwx', other='rwx')
            >>> Permissions.create(0o700)
            Permissions(user='rwx', group='', other='')
            >>> Permissions.create(['u_r', 'u_w', 'u_x'])
            Permissions(user='rwx', group='', other='')

        i�)rUr�zpermissions is invalid)ry�int�list�
ValueError�r�rs  r�createzPermissions.create�sV��*�<��E�?�"��d�C� ��K��d�C� ��D�>�!��d�D�!��T�?�"��1�2�2rc�8�|j|�jS)z+Convert an initial value to a mode integer.)r�rUr�s  rrzPermissions.get_mode�s���z�z�$��$�$�$rc�@�tt|j���S)z'Make a copy of this permissions object.r�)rr�rQrps r�copyzPermissions.copy�s����d�k�k�!2�3�3rc�,�t|j�S)z&Get a list suitable for serialization.)rgrQrps rrzzPermissions.dump�s���d�k�k�"�"rc�|�t|jddd�D��cgc]\}}||jvr|nd��}}}d|jvrd|jvrdnd|d	<d
|jvrd|jvrdnd|d<d
|jvrd|jvrdnd|d<dj|�}|Scc}}w)z7Get a Linux-style string representation of permissions.i����N�	rwxrwxrwxrCr-r4�s�Sr?r.r:�r/r@�t�Tr;rJ)�ziprerQrf)rr�crZ�perm_strs     rrozPermissions.as_str�s���
�t�6�6�r�s�;�[�I�
���a�����$�A�#�-�
��
��t�{�{�"�#�t�{�{�2�s��E�!�H�����#�#�t�{�{�2�s��E�!�H��t�{�{�"�#�t�{�{�2�s��E�!�H��7�7�5�>�����
s�B8c�Z�d}|jD]\}}||jvs�||z}�|S)z`int`: mode integer.r�rRrQ�rrUrrYs    rrUzPermissions.mode�s>�����+�+�	�J�D�$��t�{�{�"�����	��rc�d�|jD��chc]
\}}||zs�|��c}}|_ycc}}wrr�r�s    rrUzPermissions.modes)��/3�.?�.?�O�
��d�4�$�;�t�O����Os�
,�,r0r2r4r6r8r:r<r>r@r/r-r.c�:�|jj|�y)z�Add permission(s).

        Arguments:
            *permissions (str): Permission name(s), such as ``'u_w'``
                or ``'u_x'``.

        N)rQrS�rr�s  rr$zPermissions.adds��	
�����;�'rc�:�|jj|�y)z�Remove permission(s).

        Arguments:
            *permissions (str): Permission name(s), such as ``'u_w'``
                or ``'u_x'``.s

        N)rQ�difference_updater�s  rr%zPermissions.remove&s��	
���%�%�k�2rc�8�|jj|�S)z�Check if one or more permissions are enabled.

        Arguments:
            *permissions (str): Permission name(s), such as ``'u_w'``
                or ``'u_x'``.

        Returns:
            bool: `True` if all given permissions are set.

        )rQ�
issupersetr�s  r�checkzPermissions.check1s���{�{�%�%�k�2�2r)NNNNNNNNr)(r(r)r*rrRrerrmrqrtrwr{r}�classmethodr�r�r�rr�rzro�propertyrU�setterrr0r2r4r6r8r:r<r>r@r/r-r.r$r%r�)rFr�_masks000rrr+s����$
�L�5A�A�A�L�E�5�%�A���
�
������+'�Z9�2�!�)�$�&��8��8��&��&�
�3��3�<�%��%�
4�
#�
�"����
�[�[�P��P���
�C�
��
�C�
��
�C�
��
�C�
��
�C�
��
�C�
��
�C�
��
�C�
��
�C�
�8�
$�F�
�8�
$�F��I�&�G�	(�	3�3��IBs�C.r)r�
__future__rr�typingr�six�_typingr�
TYPE_CHECKINGrr	r
rrr
r�objectr�python_2_unicode_compatiblerr+rr�<module>r�s_���8�
��
��	���C�C�&�#�F�#�(� � �Q3�&�Q3�!�Q3r

Youez - 2016 - github.com/yon3zu
LinuXploit