관리-도구
편집 파일: polkit.cpython-39.pyc
a ������g�����������������������@���s����d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlmZmZmZm Z �d�dl mZ�d�dlm Z mZ�dZdZe�e�Ze eeee f�f�ZG�dd��dej�ZG�d d ��d �ZdS�)�����N)�Dict�List�Sequence�Tuple)�AskpassHandler)�Variant�busz'/usr/lib/polkit-1/polkit-agent-helper-1z/PolkitAgentc���������������� �������sn���e�Zd�Zed���fdd�Zej�dg�d��eeee eef�ee e�dd�dd ��Ze jjdd �dd�Z���ZS�) �.org_freedesktop_PolicyKit1_AuthenticationAgent�� responderc��������������������s���t�������||�_d�S��N)�super�__init__r�����selfr����� __class__���2/usr/lib/python3.9/site-packages/cockpit/polkit.pyr���.���s���� z7org_freedesktop_PolicyKit1_AuthenticationAgent.__init__��)�sr���r���za{ss}r���z a(sa{sv})N)� action_id�message� icon_name�details�cookie� identities�returnc����������� ��� �������s��t��d||||||��t���}|D�]8\}} |dkr"d| v�r"| d�j|kr"t��d| |���qlq"t��d|��d�S�t�|�j} t j t| |t jj t jj d�I�d�H�}zZz|��|�I�d�H��W�n&�t jy����t��d��|����Y�n0�W�|���I�d�H�}t��d|��n|���I�d�H�}t��d|��0�d�S�) Nz[BeginAuthentication: action %s, message "%s", icon %s, details %s, cookie %s, identities %rz unix-user�uidz,Authentication subject %s matches our uid %dz*Not supporting authentication as any of %s)�stdin�stdoutzCancelled authenticationzhelper exited with code %i)�logger�debug�os�geteuid�value�warning�pwd�getpwuid�pw_name�asyncioZcreate_subprocess_exec�HELPER_PATH� subprocess�PIPE�_communicate�CancelledError� terminate�wait) r���r���r���r���r���r���r���Zmy_uidZ auth_type�subjectZ user_name�process�resr���r���r����begin_authentication3���s0����� � �zCorg_freedesktop_PolicyKit1_AuthenticationAgent.begin_authentication)r3���r���c���������������������s`��|j�s J��|jsJ��g�}|j2��z83�d�H�W�}t�d|��|�������d�\}}}|�d�r�|�d�rhd}|�j� d� |�|d�I�d�H�}|����|d�u�r�t�d|��t� d��t�d |��|j��|�����|j��d ��~|j����I�d�H��t�d��q|dv��r|�|��q|d k�r"t�d����q\q|dk�r>t�d����q\qt�d|��|������q\q6�d�S�)NzRead line from helper: %s� Z PAM_PROMPTZPasswordr���� z/got PAM_PROMPT %s, but do_askpass returned Nonezno password givenz1got PAM_PROMPT %s, do_askpass returned a password���� z(got PAM_PROMPT, wrote password to helper)Z PAM_TEXT_INFOZ PAM_ERROR�SUCCESSzAuthentication succeeded�FAILUREzAuthentication failedz&Unknown line from helper, aborting: %s)r���r ���r!���r"����strip�decode� partition� startswithr���Z do_askpass�join�clearr*���r/����write�encodeZdrain�appendr&���r0���)r���r3����messages�lineZcommand�_r%����passwdr���r���r���r.���P���s>���� z;org_freedesktop_PolicyKit1_AuthenticationAgent._communicate)�__name__� __module__�__qualname__r���r���r���Z InterfaceZMethod�strr���r����Identityr5���r*���r,���ZProcessr.���� __classcell__r���r���r���r���r ���-���s����r ���c�������������������@���s.���e�Zd�ZdZed�dd�Zdd��Zdd��Zd S�) �PolkitAgentz}Register polkit agent when required Use this as a context manager to ensure that the agent gets unregistered again. r ���c�����������������C���s���||�_�d�|�_d�S�r���)r���� agent_slotr���r���r���r���r�������s����zPolkitAgent.__init__c�������������� �������s����zt�j���|�_W�n4�tyD�}�zt�d|��|�W��Y�d�}~S�d�}~0�0�zddttj d�d�if|�_ W�n �ty����t�d��|��Y�S�0�t |�j�}|�j�t|�|�_t�tjd��}|�j�ddd d d|�j |t�I�d�H��t�d|�j |��|�S�) Nz>cannot connect to system bus, not registering polkit agent: %szunix-sessionz session-idZXDG_SESSION_IDr���z4XDG_SESSION_ID not set, not registering polkit agent�org.freedesktop.PolicyKit1�%/org/freedesktop/PolicyKit1/Authority�$org.freedesktop.PolicyKit1.AuthorityZRegisterAuthenticationAgentz (sa{sv})ssz%Registered agent for %r and locale %s)r���ZBusZdefault_system� system_bus�OSErrorr!���r&���r���r#����environr2����KeyErrorr"���r ���r���Z add_object�AGENT_DBUS_PATHrO����locale� setlocale�LC_MESSAGES�call_method_async)r����eZagent_objectZlocale_namer���r���r���� __aenter__����s.���� � zPolkitAgent.__aenter__c�������������� �������sB���|�j�r>|�j�ddddd|�jt�I�d�H��|�j�����t�d|�j��d�S�)NrP���rQ���rR���ZUnregisterAuthenticationAgentz (sa{sv})szUnregistered agent for %r)rO���rS���r[���r2���rW����cancelr!���r"���)r���Z _exc_typeZ _exc_valueZ _tracebackr���r���r���� __aexit__����s����� zPolkitAgent.__aexit__N)rH���rI���rJ����__doc__r���r���r]���r_���r���r���r���r���rN���{���s���rN���)r*���rX���Zloggingr#���r'����typingr���r���r���r���Zcockpit._vendor.fernyr���Zcockpit._vendor.systemd_ctypesr���r���r+���rW���Z getLoggerrH���r!���rK���rL���ZObjectr ���rN���r���r���r���r����<module>���s��� N