BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/cloudinit/__pycache__/temp_utils.cpython-36.pyc
3

�q�h��@s�ddlZddlZddlZddlZddlZddlmZddlmZej	e
�ZdadZ
dZded�dd	�Zded�d
d�Zdd
�Zejddd��Zded�dd�Zded�dd�ZdS)�N)�log)�utilz/run/cloud-init/tmpz/var/tmp/cloud-initF)�	needs_execCs:|dk	r|S|rtStrtStj�dkr,tStjjdd�S)NrZTMPDIRz/tmp)�_EXE_ROOT_TMPDIR�_TMPDIR�os�getuid�_ROOT_TMPDIR�environ�get)�odirr�r
� /usr/lib/python3.6/temp_utils.py�get_tmp_ancestorsrcCs^t||�}tjj|�s,tj|�tj|d�|rHtj|d�rHtj	d|�|dkrZ|rZ|a
|S)a%Return the proper 'dir' argument for tempfile functions.

    When root, cloud-init will use /run/cloud-init/tmp to avoid
    any cleaning that a distro boot might do on /tmp (such as
    systemd-tmpfiles-clean).

    If the caller of this function (mkdtemp or mkstemp) was provided
    with a 'dir' argument, then that is respected.

    @param odir: original 'dir' arg to 'mkdtemp' or other.
    @param needs_exe: Boolean specifying whether or not exe permissions are
        needed for tempdir. This is needed because /run is mounted noexec.
    i�ZnoexeczDRequested temporal dir with exe permission `%s` is mounted as noexecN)rr�path�isdir�makedirs�chmodrZ
has_mount_opt�LOGZwarningr)rr�tdirr
r
r�_tempfile_dir_args

rcsTt|jdd�|jdd��|d<tjf|��dd�}|�_�fdd�}t�d|��S)	N�dirrFcSsFytj|�Wn2tk
r@}z|jtjkr0|�WYdd}~XnXdS)N)r�unlink�OSError�errno�ENOENT)r�er
r
r�_unlink_if_existsIs
z0ExtendedTemporaryFile.<locals>._unlink_if_existscs�j�j�dS)N)r�namer
)�fhr
r�
unlink_nowWsz)ExtendedTemporaryFile.<locals>.unlink_nowr )r�pop�tempfileZNamedTemporaryFiler�setattr)�kwargsrr r
)rr�ExtendedTemporaryFile@sr%c
ks*tf|�}z
|VWdtj||d�XdS)N)�
ignore_errors)�mkdtemp�shutilZrmtree)Zrmtree_ignore_errorsr$rr
r
r�tempdir^s

r)cKst||�}tjfd|i|��S)Nr)rr"r')rrr$r
r
rr'js
r'cKst||�}tjfd|i|��S)Nr)rr"�mkstemp)rrr$r
r
rr*os
r*)NF)NF)F)NF)NF)�
contextlibrrr(r"Z	cloudinitrZloggingrZ	getLogger�__name__rrr	r�boolrrr%�contextmanagerr)r'r*r
r
r
r�<module>s"
"