%PDF- %PDF-
Mini Shell

Mini Shell

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

a

��j]0�@snddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZddl
mZddlmZddlmZddlmZmZmZdd	lmZdd
lmZmZddlmZddlmZm Z m!Z!dd
l"m#Z#ddl$m%Z%m&Z&m'Z'e�(e)�Z*e+e,d�dd�Z-ee,d�dd�Z.Gdd�de�Z/Gdd�dej0�Z1Gdd�de1�Z2Gdd�de'e1ej3dd�Z4dS)�N)�basename)�TemporaryDirectory)�Sequence)�ferny)�make_bootloader)�Bus�Variant�bus�)�BridgeBeibootHelper)�
JsonObject�get_str)�BridgeConfig)�ConfiguredPeer�Peer�	PeerError)�PolkitAgent)�Router�RoutingError�RoutingRule)�	sudo_path�returnc	CsFz&tj|ddgtjtjtjdd�WdStjtfy@YdS0dS)Nz-Az--helpT)�stdin�stdout�stderr�checkF)�
subprocess�runZDEVNULLZCalledProcessError�OSError)r�r�5/usr/lib/python3.9/site-packages/cockpit/superuser.py�sudo_supports_askpass!s�r!)�configrcCsB|js
dSt�|jd�}|dur&dSt|�dkr>t|�s>dSdS)NFrZsudoT)�
privileged�shutil�which�spawnrr!)r"�commandrrr �is_valid_superuser_config0sr(csVeZdZUejed<eeejd��fdd�Zde	e
jd�dd�Zd	d
�dd�Z
�ZS)
�
SuperuserPeer�	responder)�routerr"r*cst��||�||_dS�N)�super�__init__r*)�selfr+r"r*��	__class__rr r.>szSuperuserPeer.__init__z
Sequence[str])�argsrrc�s�t�tjtj�\}}t��}dt���d�}t�	�}|�
ddddd|dd	d
dd�fd
d
dd�fdd
dd�fdd|d�fdd|d�fdd|d�fddt�|d�|dfgd�fgg�	}|�
d�|�|�IdH|j�fdd�|d�IdH\}	}
|	S)Nzcockpit-superuser-z.servicezorg.freedesktop.systemd1z/org/freedesktop/systemd1z org.freedesktop.systemd1.Manager�StartTransientUnitzssa(sv)a(sa(sv))ZfailZDescription�szCockpit privileged bridge)�t�v�Type�execZUser�rootZStandardInputFileDescriptor�hZStandardOutputFileDescriptorZStandardErrorFileDescriptorZ	ExecStartza(sasb)rFTcs�Sr,rr�r/rr �<lambda>h�z4SuperuserPeer.start_transient_unit.<locals>.<lambda>)�sock)�socketZ
socketpairZAF_UNIXZSOCK_STREAM�asyncio�get_running_loop�os�getpidrZdefault_systemZmessage_new_method_callr$r%Z#set_allow_interactive_authorizationZ
call_asyncZcreate_connection)r/r2rZoursZtheirsZloopZ	unit_name�system�msg�	transportZprotocolrr;r �start_transient_unitBs4�	�

 z"SuperuserPeer.start_transient_unitN�rc�s�t��4IdH���}|jjrBt�d|j�|�t|j	��IdHnt�d|j�|j	g}d|jvr�t�d|j�t
|dg�}|�|�t|j
tjd���}nd}t�|�}d|jvr�|�t��}t�|�}d|��g}n|j}|jjd	k�r|j|j|d
�IdH}	n|j|j||dd�IdH}	|du�r2|	�|�z|��IdHWn:tj�y~}
ztd
t|
�d�|
�WYd}
~
n
d}
~
00Wd�IdH�q�1IdH�s�0YdS)Nz-connecting polkit superuser peer transport %rz1connecting non-polkit superuser peer transport %rz# cockpit-bridgez$going to beiboot superuser bridge %rz--privileged)ZgadgetszSUDO_ASKPASS=ferny-askpassz
SUDO_ASKPASS=r3)rT)rZstart_new_sessionzauthentication-failed)�message)�
contextlib�AsyncExitStackr"�polkit�logger�debugr2�enter_async_contextrr*r�appendrZstepsrZBEIBOOT_GADGETS�encodeZInteractionAgent�env�
enter_contextrZwrite_askpass_to_tmpdir�methodrGr&�writeZcommunicateZInteractionErrorr�str)r/�contextZ
responders�helperZstage1ZagentZtmpdirZ
ferny_askpassrRrF�excrrr �do_connect_transportls6






z"SuperuserPeer.do_connect_transport)�__name__�
__module__�__qualname__r�AskpassHandler�__annotations__rrr.�objectr@Z	TransportrGrZ�
__classcell__rrr0r r);s

*r)c@s&eZdZdZeddedd�dd�ZdS)�CockpitResponder)z
ferny.askpass�cockpit.send-stderrztuple[object, ...]z	list[int]N)r'r2�fdsrrc
�sj|dkrftj|dd��>}|�d�|�dgtjtjt�ddg�fg�Wd�n1s\0YdS)Nrcr)�fileno��i�)r?�popZsendmsgZ
SOL_SOCKETZ
SCM_RIGHTS�array)r/r'r2rdrr>rrr �do_custom_command�s
z"CockpitResponder.do_custom_command)r[r\r]ZcommandsrVrkrrrr rb�s�rbc@s.eZdZed�dd�Zeeedd�dd�ZdS)	�AuthorizeResponder)r+cCs||_d|_dS)NF)r+�authorize_attempted)r/r+rrr r.�szAuthorizeResponder.__init__�
str | None��messages�prompt�hintrc�s`|jrt�d�dSd|_d�dd�t���d�D��}|j�d|���IdH}|dkr\dS|S)NzAnoninteractive authorize during init already attempted, rejectingT�css|]}|d�VqdS)Z02xNr��.0�crrr �	<genexpr>�r=z0AuthorizeResponder.do_askpass.<locals>.<genexpr>�asciizplain1:)	rmrM�info�join�getpassZgetuserrQr+Zrequest_authorization)r/rprqrrZhexuser�passwordrrr �
do_askpass�s
zAuthorizeResponder.do_askpassN)r[r\r]rr.rVr}rrrr rl�srlcs~eZdZUdZeeed<ded<ded<ej�	ddddd�Z
ejjd	gd
�Zejjddd
�Z
ejjdid
�Zed
d�dd�Zeeedd�dd�Zdd�eed��fdd�Zdd�dd�Zeejdd�dd �Zeedd!�d"d#�Zdd�d$d%�Zdd�d&d'�Zedd(�d)d*�Zd+dd,�d-d.�Zejjdgd/�edd0�d1d2��Z ej��dd�d3d4��Z!ejjdgd/�edd5�d6d7��Z"�Z#S)8�SuperuserRoutingRuler�superuser_configszasyncio.Future[str] | None�pending_promptzSuperuserPeer | None�peerr4�b�as)�value�none�a{sv}zPeer | None)�optionsrcCs<|�d�}|r|jdkrdS|js*|dkr0|jStd��dS)N�	superuserr9�tryz
access-denied)�get�currentr�r)r/r�r�rrr �
apply_rule�s
zSuperuserRoutingRule.apply_rulernroc�sV|dk}t����|_z2t�d|�|�d|d||�|jIdHWd|_Sd|_0dS)NZconfirmzprompting for %srs)r@rAZ
create_futurer�rMrNrq)r/rprqrrZechorrr r}�s�zSuperuserRoutingRule.do_askpassF)r#)r+r#cs8t��|�d|_d|_d|_|s.t��dkr4d|_dS)Nrr9)r-r.r�r�ZstartuprB�getuidr�)r/r+r#r0rr r.�szSuperuserRoutingRule.__init__NrHcCsd|_d|_dS)Nr�)r�r�r;rrr �	peer_done�szSuperuserRoutingRule.peer_done)�namer*rc
�s�|jdkrt�dd��|jD]}||jdfvrqHqt�dd|�d���d|_t|j||�|_|j�|j	�z|jj
|jjd�IdHWnZtj
y�t�d	d
�d�Yn:ttfy�}zt�dt|��|�WYd}~n
d}~00|jjj|_dS)Nr�zcockpit.Superuser.Errorz Superuser bridge already running�anyzUnknown superuser bridge type "�"�init)�	init_hostz!cockpit.Superuser.Error.CancelledzOperation aborted)r�r	ZBusErrorrr�r)r+r��add_done_callbackr��startr�r@ZCancelledErrorrrrVr")r/r�r*r"rYrrr �go�s 

(zSuperuserRoutingRule.go)�configsrcCs�t�dt|��dd�|D�}t|�|_dd�|jD�|_dd�|D�|_t�d|j�|jdur�|jj|jvr�t�d|jjj	�|�
�dS)	Nzset_configs() with %d itemscSsg|]}t|�r|�qSr)r(�rur"rrr �
<listcomp>r=z4SuperuserRoutingRule.set_configs.<locals>.<listcomp>cSsg|]
}|j�qSr)r�r�rrr r�	r=cSs*i|]"}|jr|jtdt|j�id��qS)�labelr�)r�rrtrrr �
<dictcomp>
r=z4SuperuserRoutingRule.set_configs.<locals>.<dictcomp>z  bridges are now %sz=  stopping superuser bridge '%s': it disappeared from configs)rMrN�len�tupler�bridges�methodsr�r"r��shutdown)r/r�rrr �set_configss

z SuperuserRoutingRule.set_configscCs|jdur|j��d|_dSr,)r��cancelr;rrr �
cancel_prompts

z"SuperuserRoutingRule.cancel_promptcCs |��|jdur|j��dSr,)r�r��closer;rrr r�s

zSuperuserRoutingRule.shutdown)�paramsrcCs<t|dd�}t|j�}t�|�||��|_|j�|j�dS)N�idr�)	r
rlr+r@Zcreate_taskr��
_init_taskr��
_init_done)r/r�r�r*rrr r�#s
zSuperuserRoutingRule.initzasyncio.Task[None])�taskrcCs&t�d|���|jjdd�|`dS)Nzsuperuser init done! %szsuperuser-init-done)r')rMrN�	exceptionr+Z
write_controlr�)r/r�rrr r�)szSuperuserRoutingRule._init_done)Zin_types)r�rc�s|�||�IdHdSr,)r�)r/r�rrr r�/szSuperuserRoutingRule.startcCs|��dSr,)r�r;rrr �stop3szSuperuserRoutingRule.stop)�replyrcCs0|jdur"t�d�|j�|�n
t�d�dS)Nzresponding to pending promptz!got Answer, but no prompt pending)r�rMrNZ
set_result)r/r�rrr �answer7s

zSuperuserRoutingRule.answer)$r[r\r]rrrr_r	Z	InterfaceZSignalrqZPropertyr�r�r�rr�rVr}r�boolr.r�rr^r�r�r�r�r�r�ZMethodr�r�r�rarrr0r r~�s.



r~zcockpit.Superuser)Z	interface)5rjr@rJr{ZloggingrBr$r?rZos.pathrZtempfiler�typingrZcockpit._vendorrZcockpit._vendor.bei.bootloaderrZcockpit._vendor.systemd_ctypesrrr	ZbeipackrZjsonutilrr
Zpackagesrr�rrrrLrr+rrrZ	getLoggerr[rMrVr�r!r(r)r^rbrlZObjectr~rrrr �<module>s6
Z


Zerion Mini Shell 1.0