%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3.9/site-packages/cockpit/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3.9/site-packages/cockpit/__pycache__/bridge.cpython-39.pyc

a

��j�.�@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZmZmZmZmZmZmZddlmZddlmZmZddlmZddlmZddlmZdd	l m!Z!dd
l"m#Z#m$Z$ddl%m&Z&ddl'm(Z(m)Z)m*Z*m+Z+dd
l,m-Z-m.Z.m/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z5ddl6m7Z7ddl8m9Z9e�:e;�Z<Gdd�d�Z=Gdd�de5e/�Z>dd�dd�Z?dd�dd�Z@eAd�dd�ZBeAdd�dd �ZCeDeeDeDfd!�d"d#�ZEdd�d$d%�ZFd&d'�eAdd(�d)d*�ZGe;d+k�reG�dS),�N)�Dict�Iterable�List�Optional�Sequence�Tuple�Type)�interaction_client)�bus�	run_async�)�	polyfills)�__version__)�ChannelRoutingRule)�
CHANNEL_TYPES)�Config�Environment)�EXPORTS)�	JsonError�
JsonObject�	JsonValue�get_dict)�BridgeConfig�Packages�PackagesListener)�PeersRoutingRule)�HostRoutingRule)�Router)�SuperuserRoutingRule)�StdioTransportc@sPeZdZUeejed<eee	e
ejfd�dd�Ze	ejdd�dd�Z
dS)	�InternalBus�	exportees)�exportscsNt��\}}tjj|��d��_tjj|��dd��_�fdd�|D��_dS)N)�fdT)r#�servercs g|]\}}�j�||���qS�)r$�
add_object)�.0�path�cls��selfr%�2/usr/lib/python3.9/site-packages/cockpit/bridge.py�
<listcomp>0�z(InternalBus.__init__.<locals>.<listcomp>)	�socket�
socketpairr
ZBus�new�detachZclientr$r!)r+r"Z
client_socketZ
server_socketr%r*r,�__init__,szInternalBus.__init__N)r(�obj�returncCs|j�|j�||��dS�N)r!�appendr$r&)r+r(r4r%r%r,�export2szInternalBus.export)�__name__�
__module__�__qualname__rr
ZSlot�__annotations__rr�strrZ
BaseObjectr3r8r%r%r%r,r )s
 r cs�eZdZUeed<eed<eeed<ee	ed<e
jed<e
jd��fdd�Ze
d	�d
d�Zee
d	�dd
��Ze
dd�dd�Zdd	�dd�Zdd	�dd�Z�ZS)�Bridge�channels�internal_bus�packages�bridge_configs�args)rCcstt�|_g|_||_t||jd�|_|j�d|j�|j�dt	��|j�dt
��t|�|_|j
r�|j�tdgd�dgd��tddd	tjd
ddgd
��f�d|_n0|jr�d|_n"t|�|_|j�d|j�|��t|t�|_t��t|�|j|j|jg�dS)N)�
privilegedz
/superuserz/configz/environmentT)Zsudoz-kz-AZpython3�-ic�# cockpit-bridge�--privilegedzSUDO_ASKPASS=ferny-askpass)rD�spawn�environZStartTransientUnitrErFrG)rDZpolkit�methodrHz	/packages)r rr@rBrCrrD�superuser_ruler8rrr�
peers_rule�beipack�set_configsr�sys�
executablerAr�packages_loadedrrr?�superr3r)r+rC��	__class__r%r,r3=sF

���

�zBridge.__init__�r5cCs�t�t���}t�|j�j}|g}t��D]&}|j	|j
vr*|j|vr*|�|j�q*|j�
�|��|j|j|||j|j	|j|jd�d�S)N)�fullname�gid�group�groups�home�name�shell�uid)r?�
os_release�user)�pwd�getpwuid�os�getuid�grp�getgrgid�pw_gid�gr_name�getgrall�pw_name�gr_memr7r?�capabilities�get_os_release�pw_gecos�pw_dir�pw_shell�pw_uid)r+ZpwrXrYZgrr%r%r,�infojs$��zBridge.infocCsfztddd�}WnHtyXztddd�}Wn$tyRt�d�iYYS0Yn0t|���S)Nz/etc/os-releasezutf-8)�encodingz/usr/lib/os-releasez6Neither /etc/os-release nor /usr/lib/os-release exists)�open�FileNotFoundError�logger�warning�parse_os_release�read)�filer%r%r,rl�s
zBridge.get_os_releaseN)�messager5cCsDt�t��&t|d�}|j�|�Wd�n1s60YdS)N�	superuser)�
contextlib�suppressrrrK�init)r+rzr{r%r%r,�do_init�s
zBridge.do_initcCs@ddid|��dd�}|jdur2t�|jj�|d<|�|�dS)Nzexplicit-superuserTr~r)rk�commandz
os-release�versionrA)rlrA�dict�fromkeysZ
write_control)r+Z	init_argsr%r%r,�do_send_init�s�
zBridge.do_send_initcCs@|js
J�|j��}|j|kr<|j�|�|j�|�||_dSr6)rA�get_bridge_configsrBrKrNrL)r+rBr%r%r,rQ�s


zBridge.packages_loaded)r9r:r;rr<r rrrr�argparse�	Namespacer3rrq�staticmethodrlrr�rQ�
__classcell__r%r%rSr,r>6s

-r>rUc	�s�t�d�t�t���}|jtjd<|jtjd<|j	tjd<t�d�t
|�}tt�
�|�t�d�z|��IdHWnttfy�Yn0dS)NzHi. How are you today?�HOMEZSHELLZUSERzStarting the router.z/Startup done.  Looping until connection closes.)ru�debugr`rarbrcrnrIrorir>r�asyncioZget_running_loopZcommunicate�BrokenPipeError�ConnectionResetError)rC�me�routerr%r%r,�run�s


r�c
Cs�z�t��\}}|�`|�&tjdd|��gd�Wd�n1sD0Yt�|dd�\}}}}Wd�n1sx0YWnty�YdS0z6|\}t�dd�t�|d�W|D]}t�	|�q�n|D]}t�	|�q�0dS)N�zcockpit.send-stderr)�fdsrz	ferny.end)
r/r0r	r��filenoZrecv_fds�OSErrorrb�dup2�close)ZoursZtheirsZ_msgr�Z_flagsZ_addrZ	stderr_fdr#r%r%r,�try_to_receive_stderr�s 48�r�cCsNt�t�d�j�sdSzddl}Wnty6YdS0tj�	|j
���dS)Nr�FrT)�stat�S_ISSOCKrb�fstat�st_modeZsystemd.journal�ImportError�logging�rootZ
addHandlerZjournalZJournalHandler)Zsystemdr%r%r,�setup_journald�sr�)r�r5cCsvt�dd�}t�stjdd�|s*|dkr>t��jtjd�n4|rr|�d�D]$}|�	�}|s^qLt�|��tj�qLdS)	zOSetup our logger with optional filtering of modules if COCKPIT_DEBUG env is setZ
COCKPIT_DEBUG�z#%(name)s-%(levelname)s: %(message)s)�format�all)�level�,N)
rb�getenvr�r�ZbasicConfig�	getLoggerZsetLevel�DEBUG�split�strip)r��modules�moduler%r%r,�
setup_logging�sr�)�textr5c	Csxi}|��D]f}|��}|r|�d�r(qz|�d�\}}t�|�\}Wn"tyht�d|�YqYn0|||<q|S)N�#�=z'Ignoring invalid line in os-release: %r)�
splitlinesr��
startswithr��shlex�
ValueErrorrurv)r�r^�line�k�vZv_parsedr%r%r,rws

rwc
Cs�zxtjgd�tjtjdd�}|jdus*J�tj|j��dd�D]&}|�d�r>|�ddd�tj	d<qvq>|�
�|��WnJty�t
�d	�Yn0ty�}zt
�d
|�WYd}~n
d}~00dS)N)z	ssh-agent�shz-ecz)echo SSH_AUTH_SOCK=$SSH_AUTH_SOCK; read aT)�stdin�stdoutZuniversal_newlines)Zpunctuation_charszSSH_AUTH_SOCK=r�r�
SSH_AUTH_SOCKz,Couldn't start ssh-agent (FileNotFoundError)zCould not start ssh-agent: %s)�
subprocess�Popen�PIPEr�r��readliner��replacerbrIZ	terminate�waitrtrur�r�rv)�proc�token�excr%r%r,�start_ssh_agents

�
r�F)rM)rMr5cCst��tjdd�}|jdddd�|jdddd�|jd	dd
d�|jdddd�|jd
ddd�|��}||_|jr~t�t	|j
d�|jr�t��
�dS|jr�tdt�d��dS|jr�ttjdd�t���D�dd��dSdtjvr�|js�t�tt|�|j
d�dS)Nz@cockpit-bridge is run automatically inside of a Cockpit session.)�descriptionrG�
store_truezPrivileged copy of the bridge)�action�helpz
--packagesz Show Cockpit package informationz	--bridgesz Show Cockpit bridges informationz--debugz"Enable debug output (very verbose)z	--versionz Show Cockpit version information)r�z	Version: z
Protocol: 1cSsg|]
}|j�qSr%)�__dict__)r'�configr%r%r,r-Lr.zmain.<locals>.<listcomp>r�)�indentr�)r
�installr��ArgumentParser�add_argument�
parse_argsrMrDr�r�r�rArZshowr��printrZbridges�json�dumpsr�rbrIr�rr�)rM�parserrCr%r%r,�main,s0
"r��__main__)Hr�r�r|rdr�r�rbr`r�r/r�r�rO�typingrrrrrrrZcockpit._vendor.fernyr	Zcockpit._vendor.systemd_ctypesr
rr�r
�_versionrZchannelrr?rr�rrZinternal_endpointsrZjsonutilrrrrrArrrZpeerrZremoterr�rr{rZ
transportsrr�r9rur r>r�r��boolr�r�r=rwr�r�r%r%r%r,�<module>sP$

y+


Zerion Mini Shell 1.0