shell bypass 403

Cubjrnet7 Shell


name : dmi.cpython-39.opt-1.pyc
a

'�Dgr�@s�ddlZddlZddlZddlmZddlmZddlmZm	Z	ddl
mZmZm
Z
mZe�e�ZdZedgd��Zd	ej_ed
dd�edd
d�eddd�eddd�eddd�eddd�eddd�eddd�eddd�eddd�edd d!�ed"d#d�ed$d%d�ed&d'd(�ed)d*d!�ed+d,d!�ed-d.d�d/�Zeeed0�d1d2�Zeeed0�d3d4�Zeeed0�d5d6�Zeeeed7�d8d9�Zeeed0�d:d;�Zeed<�d=d>�ZdS)?�N)�
namedtuple)�Optional)�performance�subp)�is_container�is_DragonFlyBSD�
is_FreeBSD�
is_OpenBSDz/sys/class/dmi/id�KernelNames)�linux�freebsd�openbsd)NNNZboard_asset_tagzsmbios.planar.tagZboard_vendorzsmbios.planar.makerZ
board_namezsmbios.planar.productZboard_serialzsmbios.planar.serialZ
board_versionzsmbios.planar.versionZ	bios_datezsmbios.bios.reldateZbios_vendorzsmbios.bios.vendorZbios_versionzsmbios.bios.versionZchassis_asset_tagzsmbios.chassis.tagZchassis_vendorzsmbios.chassis.makerz	hw.vendorZchassis_serialzsmbios.chassis.serialzhw.uuidZchassis_versionzsmbios.chassis.versionZ
sys_vendorzsmbios.system.makerZproduct_namezsmbios.system.productz
hw.productZproduct_serialzsmbios.system.serialZproduct_uuidzsmbios.system.uuidZproduct_versionzsmbios.system.version)zbaseboard-asset-tagzbaseboard-manufacturerzbaseboard-product-namezbaseboard-serial-numberzbaseboard-versionzbios-release-datezbios-vendorzbios-versionzchassis-asset-tagzchassis-manufacturerzchassis-serial-numberzchassis-versionzsystem-manufacturerzsystem-product-namezsystem-serial-numberzsystem-uuidzsystem-version)�key�returnc
CsFt�|�}|dus|jdur dSd�t|j�}t�d|�tj�	|�sVt�d|�dSzft
�d|����Bt|d��}|�
�}Wd�n1s�0YWd�n1s�0YWn ty�t�d|�YdS0|dt|�d	d
kr�d}z|�d���WSt�y@}zt�d
|||�WYd}~n
d}~00dS)z/
    Reads dmi data from /sys/class/dmi/id
    Nz{0}/{1}�querying dmi data %szdid not find %szReading �rbzCould not read %s����
��utf8z-utf-8 decode of content (%s) in %s failed: %s)�DMIDECODE_TO_KERNEL�getr�format�DMI_SYS_PATH�LOG�debug�os�path�existsrZTimed�open�read�PermissionError�len�decode�strip�UnicodeDecodeError�error)r�kmapZdmi_key_path�fpZkey_data�e�r+�1/usr/lib/python3.9/site-packages/cloudinit/dmi.py�_read_dmi_syspathPs:
�H�r-c
Cs�t�|�}|dus|jdur dSt�d|j�z2dd|jg}t�|�j��}t�d||j�|WStjy�}zt�d||�WYd}~n
d}~00dS)z/
    Reads dmi data from FreeBSD's kenv(1)
    NrZkenvz-qzkenv returned '%s' for '%s'zfailed kenv cmd: %s
%s)	rrrrrr�stdoutr%�ProcessExecutionError�rr(�cmd�resultr*r+r+r,�
_read_kenvxs
$r3c
Cs�t�|�}|dus|jdur dSt�d|j�z2dd|jg}t�|�j��}t�d||j�|WStjy�}zt�d||�WYd}~n
d}~00dS)z1
    Reads dmi data from OpenBSD's sysctl(8)
    NrZsysctlz-qnzsysctl returned '%s' for '%s'zfailed sysctl cmd: %s
%s)	rrr
rrrr.r%r/r0r+r+r,�_read_sysctl�s
$r4)r�dmidecode_pathrc
Cs�zD|d|g}t�|�j��}t�d||�|�dd�dkr@WdS|WStjyz}zt�d||�WYd}~dSd}~00dS)z
    Calls out to dmidecode to get the data out. This is mostly for supporting
    OS's without /sys/class/dmi/id support.
    z--stringz dmidecode returned '%s' for '%s'�.�zfailed dmidecode cmd: %s
%sN)rr.r%rr�replacer/)rr5r1r2r*r+r+r,�_call_dmidecode�s
r9cCs�t�r
dSt�st�rt|�St�r,t|�St|�}|dur@|Sdd�}t��d}||�st|dvstt	�
d|�dSt�d�}|r�t
||�St	�
dt�dS)	a�
    Wrapper for reading DMI data.

    If running in a container return None.  This is because DMI data is
    assumed to be not useful in a container as it does not represent the
    container but rather the host.

    This will do the following (returning the first that produces a
    result):
        1) Use a mapping to translate `key` from dmidecode naming to
           sysfs naming and look in /sys/class/dmi/... for a value.
        2) Use `key` as a sysfs key directly and look in /sys/class/dmi/...
        3) Fall-back to passing `key` to `dmidecode --string`.

    If all of the above fail to find a value, None will be returned.
    NcSs$|dkp"|ddko"|dd�dkS)NZx86_64r�i�Z86r+)Zarchr+r+r,�is_x86�szread_dmi_data.<locals>.is_x86�)Zaarch64Zamd64zdmidata is not supported on %sZ	dmidecodez0did not find either path %s or dmidecode command)rrrr3r	r4r-r�unamerrr�whichr9r)rZ
syspath_valuer<Z
uname_archr5r+r+r,�
read_dmi_data�s&

r@)�srcrcCsxd|vr|St��}t�d|�D]R}||vr>t�d|||�q t|�}|sNd}t�d|||�|�d|�d�|�}q |S)zBReplace __dmi.VARNAME__ with DMI values from either sysfs or kenv.�__z__dmi\.([^_]+)__z7Ignoring invalid __dmi.%s__ in %s. Expected one of: %s.r7z'Replacing __dmi.%s__ in '%s' with '%s'.z__dmi.)	r�keys�re�findallrZwarningr@rr8)rAZvalid_dmi_keys�matchZ	dmi_valuer+r+r,�sub_dmi_vars�s.��rG)ZloggingrrD�collectionsr�typingrZ	cloudinitrrZcloudinit.utilrrrr	Z	getLogger�__name__rrr
�__new__�__defaults__r�strr-r3r4r9r@rGr+r+r+r,�<module>s|

�����


����������1(0

© 2025 Cubjrnet7