shell bypass 403
3
c8h�* � @ sD d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ yd dlm Z W n e
k
rd eZ Y nX d dlm
Z
d dlmZ d dlmZ d dlmZ d dlmZ d d lmZ d d
lmZ dadZdd
� Zdd� Zdd� Zdd� Zdd� Zdd� Zd)dd�Zd*dd�Zd+dd�ZG dd � d e�Z d!d"� Z!d#d$� Z"d%d&� Z#d'd(� Z$dS ),� N)� rpcServer)�DictType)�rpclib)�
clientCaps)�config)� rhnserver)�
up2dateErrors)�
up2dateLog)�up2dateUtilsz /var/spool/up2date/loginAuth.pklc C s@ t j� } | d }tj|tj�s"d S t|d�}|j� }|j� |S )N�systemIdPath�r)r �initUp2dateConfig�os�access�R_OK�open�read�close)�cfg�path�f�ret� r �!/usr/lib/python3.6/up2dateAuth.py�getSystemId s
r c C s� t j� } t� }d}|dkr|S yDtjj|�d d }|jdd�}|dkrN|}n| jd||f � |S tk
r� | jd� | j t
j� � Y nX |S ) z�
Extract the preferred_interface parameter from system_id XML
Returns 'IPv4' or 'IPv6' if specified, otherwise 'IPv4' as default
�IPv4Nr �preferred_interface�IPv6zGInvalid preferred_interface value '%s' in system_id, defaulting to '%s'zGFailed to parse system_id XML, preferred_interface defaulting to 'IPv4')r r )r �initLogr r � xmlrpclib�loads�get�log_me� Exception�
log_exception�sys�exc_info)�log�systemIdr ZparamsZ
cfg_interfacer r r �getPreferredInterface( s$
r) c C sB t jjd�rd S tj� } ytjjt� �d d d }W n
dS t j
� }| d oZ||k�r>tj� }|j
jt� |�}| d }|d |jd�� }t j|t j�s�yt j|� W n
dS t j|t j�s�dS t j|t j�� r�|d }yt j||� W n
dS t|d�}|j|� |j� yt j|td d
�� W n Y nX d S )NZLEAPP_IPU_IN_PROGRESSr Z
os_releaseZchannelOverrider �/z.save�w�0600� )r �environr! r r
r r r r r
Z
getVersionr ZRegistrationRhnServerZregistrationZupgrade_version�rfindr �W_OK�mkdir�F_OK�renamer �writer �chmod�int) r �idVerZ systemVer�sZnewSystemIdr �dirZsavePathr r r r �maybeUpdateVersionL sB
r: c C s� t j� } | jd� ts$| jd� dS tj� td�}tjjt�}tj |tj
�s�y tj|� tj|t
dd�� W n | jd| � dS ttd�}tjtt
d d�� tj||� |j� |d
ttd � }| jd|d
d
|d� dS )z�
Pickle loginInfo to a file
Returns:
True -- wrote loginInfo to a pickle file
False -- did _not_ write loginInfo to a pickle file
zwriteCachedLogin() invokedz1writeCachedLogin() loginInfo is None, so bailing.F)�time� loginInfoZ0700r- z'Unable to write pickled loginInfo to %s�wbr, r; zX-RHN-Auth-Expire-OffsetzWrote pickled loginInfo at z with expiration of z seconds.T)r r � log_debugr<