OwlCyberSecurity - MANAGER
Edit File: _pssunos.cpython-36.opt-1.pyc
3 ��JZ2d������������������@���s ��d�Z�ddlZddlZddlZddlZddlZddlmZ�ddlmZ�ddl m Z �ddl mZ�ddl mZ �dd l mZ�dd l mZ�ddl mZ�ddl mZ�dd l mZ�ddl mZ�ddl mZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�dddgZejd�Ze j Z ej!d^kZ"dZ#dZ$ej%e j&ej'e j(ej)e j*ej+e j,ej-e j.ej/e j(ej0e j1iZ2ej3e j4ej5e j6ej7e j8ej9e j:ej;e j<ej=e j>ej?e j@ejAe jBejCe jDejEe jFejGe jHejIe jJejKe#ejLe$iZMeNddddddd d!d"�ZOed#d$d%d&d'g�ZPed(d$d%d)d*g�ZQed+d,d-d.d/d0g�ZRed1d2d3g�ZSeSZTed4d5d2d6d7g�ZUed8d9d:jVeUjW���ZXd;d<��ZYd=d>��ZZd?d@��Z[dAdB��Z\dCdD��Z]dEdF��Z^dGdH��Z_dIdJ��Z`ejaZaejbZbd_dLdM�ZcejdZde jeZedadNdO�ZfdPdQ��ZgdRdS��ZhdTdU��ZidVdW��ZjdXdY��ZkdZd[��ZlG�d\d]��d]em�ZndS�)bz'Sun OS Solaris platform implementation.�����N)� namedtuple)�AF_INET����)�_common)�_psposix)� _psutil_posix)� _psutil_sunos)�AF_INET6)� isfile_strict)�memoize_when_activated)�sockfam_to_enum)�socktype_to_enum)� usage_percent)�b)�PY3)�AccessDenied)� NoSuchProcess)� ZombieProcess� CONN_IDLE� CONN_BOUND�PROCFS_PATH�SC_PAGE_SIZE����� ���ZIDLEZBOUND��������������������)�ppid�rss�vms�create_time�nice�num_threads�status�ttynr� scputimes�user�systemZidleZiowait� pcputimes� children_user�children_system�svmem�totalZ available�percent�used�free�pmemr ���r!���� pmmap_grouped�pathZ anonymous�locked� pmmap_extzaddr perms � c���������������C���s���t�jd�jS�)z+Return updated psutil.PROCFS_PATH constant.Zpsutil)�sys�modulesr�����r:���r:���� /usr/lib64/python3.6/_pssunos.py�get_procfs_pathq���s����r<���c��������������C���sF���t�jd�t�}�t�jd�t��}}|�|�}t||�dd�}t|�||||�S�)zReport virtual memory metrics.� SC_PHYS_PAGES�SC_AVPHYS_PAGESr���)�_round)�os�sysconf� PAGE_SIZEr���r-���)r.���r1���Zavailr0���r/���r:���r:���r;����virtual_memory{���s ����rC���c�������� ������C���s��t�j��\}�}tjddtjd��ddgtjd�}|j��\}}trL|j t jj�}|j dkrdtd|j ���|j��jd �d d��}|s�td��d�}}xL|D�]D}|j��}|dd��\} } |tt| �d��7�}|tt| �d��7�}q�W�||�}t||d d�}tj|||||�t�|t��S�)zReport swap memory metrics.z/usr/bin/envzPATH=/usr/sbin:/sbin:%s�PATHZswapz-l)�stdoutr���z'swap -l' failed (retcode=%s)� r���Nzno swap device(s) configuredr���i���)r?������)�cextZswap_mem� subprocess�Popenr@����environ�PIPE�communicater����decoder8���rE����encoding� returncode�RuntimeError�strip�split�intr���r���ZsswaprB���) ZsinZsout�prE����stderr�linesr.���r1����line�t�fr0���r/���r:���r:���r;����swap_memory����s,���� r[���c��������������C���s���t�j��}�tdd��t|���D����S�)z-Return system-wide CPU times as a named tuplec�������������S���s���g�|�]}t�|��qS�r:���)�sum)�.0�xr:���r:���r;���� <listcomp>����s����zcpu_times.<locals>.<listcomp>)rH���� per_cpu_timesr'����zip)�retr:���r:���r;���� cpu_times����s����rc���c��������������C���s���t�j��}�dd��|�D��S�)z5Return system per-CPU times as a list of named tuplesc�������������S���s���g�|�]}t�|���qS�r:���)r'���)r]���r^���r:���r:���r;���r_�������s����z!per_cpu_times.<locals>.<listcomp>)rH���r`���)rb���r:���r:���r;���r`�������s����r`���c���������������C���s$���y t�jd�S��tk r���dS�X�dS�)z0Return the number of logical CPUs in the system.�SC_NPROCESSORS_ONLNN)r@���rA���� ValueErrorr:���r:���r:���r;����cpu_count_logical����s���� rf���c���������������C���s���t�j��S�)z1Return the number of physical CPUs in the system.)rH���Zcpu_count_physr:���r:���r:���r;����cpu_count_physical����s����rg���c��������������C���s$���t�j��\}�}}}d}tj|�|||�S�)z*Return various CPU stats as a named tuple.r���)rH���� cpu_statsr���Z scpustats)Zctx_switchesZ interruptsZsyscallsZtrapsZsoft_interruptsr:���r:���r;���rh�������s���� rh���Fc������� ������C���s`���g�}t�j��}xN|D�]F}|\}}}}|dkr.d}|�s>t|�js>qtj||||�}|j|��qW�|S�)zReturn system disk partitions.Znone��)rH����disk_partitions� disk_usager.���r���Z sdiskpart�append) �all�retlistZ partitions� partitionZdeviceZ mountpointZfstypeZoptsZntupler:���r:���r;���rj�������s���� rj���c���������� ���C���s��t�jj��}|dkr|jdd��|�|krFtd|�djdd��|D���f���t�j|��\}}tj|�}t��}x�|D�]�}|\}} } }}} }| |kr�qj| |kr�qj| t t fkr�|r�t�j|��}|r�t�j|��}t| �} t | �} t| �} |d kr�t�j|| | ||| |�}nt�j|| | ||| �}|j|��qjW�t|�S�) z�Return socket connections. If pid == -1 return system-wide connections (as opposed to connections opened by one process only). Only INET sockets are returned (UNIX are not). r����unixr���z+invalid %r kind argument; choose between %sz, c�������������S���s���g�|�]}t�|��qS�r:���)�repr)r]���r^���r:���r:���r;���r_�������s����z#net_connections.<locals>.<listcomp>���rr���)r���Z conn_tmap�copy�popre����joinrH����net_connections�setr���r ����addr�TCP_STATUSESr���r ���Zsconn�pconn�add�list)�kind�_pidZcmapZfamilies�types�rawlistrb����item�fdZfamZtype_ZladdrZraddrr%����pid�ntr:���r:���r;���rv�������s8���� rv���c��������������C���sV���t�j��}�xH|�j��D�]<\}}|\}}}}ttd�r:tj|�}tj||||�|�|<�qW�|�S�)z)Get NIC stats (isup, duplex, speed, mtu).� NicDuplex)rH����net_if_stats�items�hasattrr���r����Z snicstats)rb����namer����ZisupZduplexZspeedZmtur:���r:���r;���r������s���� r����c���������������C���s���t�j��S�)z:The system boot time expressed in seconds since the epoch.)rH���� boot_timer:���r:���r:���r;���r����)��s����r����c��������������C���s`���g�}�t�j��}d}xJ|D�]B}|\}}}}}} |s0q||kr<d}tj||||| �} |�j| ��qW�|�S�)z:Return currently connected users as a list of namedtuples.�:0.0�:0� localhost)r����r����)rH����usersr���Zsuserrl���)rn���r����r����r����r(����ttyZhostnameZtstampZuser_processr����r����r:���r:���r;���r����.��s���� r����c���������������C���s���dd��t�jtt����D��S�)z7Returns a list of PIDs currently running on the system.c�������������S���s���g�|�]}|j���rt|��qS�r:���)�isdigitrT���)r]���r^���r:���r:���r;���r_���H��s����zpids.<locals>.<listcomp>)r@����listdirr���r<���r:���r:���r:���r;����pidsF��s����r����c�������������C���s ���t�j|��S�)z&Check for the existence of a unix pid.)r���� pid_exists)r����r:���r:���r;���r����K��s����r����c����������������s�����fdd�}|S�)z�Call callable into a try/except clause and translate ENOENT, EACCES and EPERM in NoSuchProcess or AccessDenied exceptions. c����������������s����y��|�f|�|�S��t�k r��}�z�|�jdkrHdt��krFt|�j|�j��n��|jtjtjfkr�t|�j�stt |�j|�j��nt |�j|�j|�j��|jtjtj fkr�t|�j|�j����W�Y�d�d�}~X�nX�d�S�)Nr���)�EnvironmentErrorr����r����r����_name�errno�ENOENT�ESRCHr����r���r����_ppidZEPERMZEACCES)�self�args�kwargs�err)�funr:���r;����wrapperU��s���� z wrap_exceptions.<locals>.wrapperr:���)r����r����r:���)r����r;����wrap_exceptionsP��s����r����c���������������@���s���e�Zd�ZdZddddgZdd��Zdd ��Zd d��Zedd ���Z edd���Z edd���Zedd���Z edd���Zedd���Zedd���Zedd���Zedd���Zedd���Zed d!���Zed"d#���Zed$d%���Zed&d'���Zed(d)���Zed*d+���Zed,d-���Zed.d/���Zed0d1���ZeZed2d3���Zed4d5���Zed6d7���Z d8d9��Z!edId;d<��Z"e#d=d>�Z$e#d=d?�Z%ed@dA���Z&edBdC���Z'edDdE���Z(edJdGdH��Z)dFS�)K�Processz1Wrapper class around underlying C implementation.r����r����r�����_procfs_pathc�������������C���s���||�_�d�|�_d�|�_t��|�_d�S�)N)r����r����r����r<���r����)r����r����r:���r:���r;����__init__q��s����zProcess.__init__c�������������C���s"���|�j�j���|�jj���|�jj���d�S�)N)�_proc_name_and_argsZcache_activate�_proc_basic_info� _proc_cred)r����r:���r:���r;���� oneshot_enterw��s���� zProcess.oneshot_enterc�������������C���s"���|�j�j���|�jj���|�jj���d�S�)N)r����Zcache_deactivater����r����)r����r:���r:���r;����oneshot_exit|��s���� zProcess.oneshot_exitc�������������C���s���t�j|�j|�j�S�)N)rH���Zproc_name_and_argsr����r����)r����r:���r:���r;���r�������s����zProcess._proc_name_and_argsc�������������C���s���t�j|�j|�j�}|S�)N)rH���Zproc_basic_infor����r����)r����rb���r:���r:���r;���r�������s����zProcess._proc_basic_infoc�������������C���s���t�j|�j|�j�S�)N)rH���Z proc_credr����r����)r����r:���r:���r;���r�������s����zProcess._proc_credc�������������C���s���|�j���d�S�)Nr���)r����)r����r:���r:���r;���r�������s����zProcess.namec�������������C���s8���yt�jd|�j|�jf��S��tk r*���Y�nX�|�j���dS�)Nz%s/%s/path/a.outri���)r@����readlinkr����r�����OSError�cmdline)r����r:���r:���r;����exe���s����zProcess.exec�������������C���s���|�j���d�jd�S�)Nr���r7���)r����rS���)r����r:���r:���r;���r�������s����zProcess.cmdlinec�������������C���s���t�j|�j|�j�S�)N)rH���Zproc_environr����r����)r����r:���r:���r;���rK������s����zProcess.environc�������������C���s���|�j���td��S�)Nr"���)r����� proc_info_map)r����r:���r:���r;���r"������s����zProcess.create_timec�������������C���s���|�j���td��S�)Nr$���)r����r����)r����r:���r:���r;���r$������s����zProcess.num_threadsc�������������C���sb���yt�j|�j�S��tk r\�}�z4|jtjtjdfkrJt|�j�rJt|�j|�j ����W�Y�d�d�}~X�nX�d�S�)N�0���) � cext_posix�getpriorityr����r����r����r����r����r����r���r����)r����r����r:���r:���r;����nice_get���s���� zProcess.nice_getc�������������C���s&���|�j�dkrt|�j�|�j��tj|�j�|�S�)Nr���r���)r���r���)r����r���r����r�����setpriority)r�����valuer:���r:���r;����nice_set���s���� zProcess.nice_setc�������������C���s���|�j���td��|�_|�jS�)Nr���)r����r����r����)r����r:���r:���r;���r������s����zProcess.ppidc�������������C���s"���|�j���\}}}}}}tj|||�S�)N)r����r����puids)r�����real� effective�saved�_r:���r:���r;����uids���s����zProcess.uidsc�������������C���s"���|�j���\}}}}}}tj|||�S�)N)r����r���r����)r����r����r����r����r����r:���r:���r;����gids���s����zProcess.gidsc�������������C���s\���yt�j|�j|�j�}W�n<�tk rP�}�z |jtjkr>t�r>d}n��W�Y�d�d�}~X�nX�tj |��S�)N���������)r����r����r����r����) rH���Zproc_cpu_timesr����r����r����r����� EOVERFLOW� IS_64_BITr���r*���)r�����timesr����r:���r:���r;���rc������s����zProcess.cpu_timesc�������������C���s���t�j|�j|�j�S�)N)rH���Zproc_cpu_numr����r����)r����r:���r:���r;����cpu_num���s����zProcess.cpu_numc�������������C���s����|�j�}d}t|�j��td���}|tjkr�xZd D�]R}ytjd||�j|f��S��t k r~�}�z|j t jkrld}w.��W�Y�d�d�}~X�q.X�q.W�|r�tjd ||�jf���d�S�)NFr&���r���r���r�������z %s/%d/path/%dTz%s/%s)r���r���r���r����) r����r����r����r����rH���ZPRNODEVr@���r����r����r����r����r�����stat)r�����procfs_path� hit_enoentr����r^���r����r:���r:���r;����terminal���s ���� zProcess.terminalc�������������C���sh���|�j�}ytjd||�jf��S��tk rb�}�z,|jtjkrPtjd||�jf���d�S���W�Y�d�d�}~X�nX�d�S�)Nz%s/%s/path/cwdz%s/%s)r����r@���r����r����r����r����r����r����)r����r����r����r:���r:���r;����cwd��s����zProcess.cwdc�������������C���s2���|�j���}|td��d�}|td��d�}t||�S�)Nr ���i���r!���)r����r����r2���)r����rb���r ���r!���r:���r:���r;����memory_info��s����zProcess.memory_infoc�������������C���s���|�j���td��}tj|d�S�)Nr%����?)r����r����� PROC_STATUSES�get)r�����coder:���r:���r;���r%���$��s����zProcess.statusc������� ������C���s����|�j�}g�}tjd||�jf��}d}x�|D�]�}t|�}ytj|�j||�\}}W�nJ�tk r��}�z.|jtj krrt �rrw(|jtjkr�d}w(��W�Y�d�d�}~X�q(X�tj |||�} |j| ��q(W�|r�tjd||�jf���|S�)Nz %s/%d/lwpFTz%s/%s)r����r@���r����r����rT���rH���Zquery_process_threadr����r����r����r����r����r���Zpthreadrl���r����) r����r����rb���Ztidsr�����tid�utimeZstimer����r����r:���r:���r;����threads*��s*���� zProcess.threadsc������� ������C���s����g�}d}|�j�}d||�jf�}x�tjd||�jf��D�]�}tjj||�}tjj|�r2ytj|�}W�n6�tk r��}�z|j t j kr�d}w2��W�Y�d�d�}~X�q2X�t|�r2|jt j|t|����q2W�|r�tjd||�jf���|S�)NFz %s/%d/pathz%s/%d/fdTz%s/%s)r����r����r@���r����r4���ru����islinkr����r����r����r����r ���rl���r���Z popenfilerT���r����) r����rn���r����r����Zpathdirr����r4����filer����r:���r:���r;���� open_filesL��s&����zProcess.open_filesc�������������c���s,��d|�}t�j|dt�jt�jd�}|j��\}}trDdd��||fD��\}}|jdkr�d|j��krht|�j|�j ��d|j��kr�t |�j|�j ��td ||f���|jd �dd��}x�t |�D�]v\}}|j��}|jd �r�|jdd�d�} ||d��j��} | dkr�tj} n| dk�r tj} nd} dtj| | dtjfV��q�W�dS�)z<Get UNIX sockets used by process by parsing 'pfiles' output.z pfiles %sT)�shellrE���rV���c�������������S���s���g�|�]}|j�tjj��qS�r:���)rN���r8���rE���rO���)r]���r^���r:���r:���r;���r_���n��s���z-Process._get_unix_sockets.<locals>.<listcomp>r���zpermission deniedzno such processz%r command error %srF���r���Nzsockname: AF_UNIXr7����SOCK_STREAM� SOCK_DGRAMr���ri���rr���rr���)rI���rJ���rL���rM���r���rP����lowerr���r����r����r���rQ���rS���� enumerate�lstrip� startswithrR����socketr����r����ZAF_UNIXr���� CONN_NONE)r����r�����cmdrU���rE���rV���rW����irX���r4����typer:���r:���r;����_get_unix_socketse��s2���� zProcess._get_unix_sockets�inetc�������������C���sP���t�||�jd�}|s(tjd|�j|�jf���|dkrL|jdd��|�j|�j�D����|S�)N)r~���z%s/%srm���rp���c�������������S���s���g�|�]}t�j|���qS�r:���)r���rz���)r]���Zconnr:���r:���r;���r_������s����z'Process.connections.<locals>.<listcomp>)rm���rp���)rv���r����r@���r����r�����extendr����)r����r}���rb���r:���r:���r;����connections���s���� zProcess.connectionsZmmapzpath rss anon lockedzaddr perms path rss anon lockedc����������$���C���s.��dd��}|�j�}g�}ytj|�j|�}W�n:�tk r^�}�z|jtjkrLt�rLg�S���W�Y�d�d�}~X�nX�d}x�|D�]�}|\}} } }}} }||| �}|jd�s�yt j d||�j|f��}W�nF�tk r��}�z*|jtjkr�d||�j|f�}d}n��W�Y�d�d�}~X�nX�|j|| ||| |f��qjW�|�r*t j d||�jf���|S�)Nc�������������S���s0���dt�|��dd���jd�t�|�dd���jd�f�S�)Nz%s-%sr����L)�hexrR���)�start�endr:���r:���r;����toaddr���s����z#Process.memory_maps.<locals>.toaddrF�[z %s/%s/path/%sTz%s/%s)r����rH���Zproc_memory_mapsr����r����r����r����r����r����r@���r����r����rl���r����)r����r����r����rn���r����r����r����r����rx���ZaddrsizeZpermr����r ���Zanonr5���r:���r:���r;����memory_maps���s4���� zProcess.memory_mapsc�������������C���s���t�tjd|�j|�jf���S�)Nz%s/%s/fd)�lenr@���r����r����r����)r����r:���r:���r;����num_fds���s����zProcess.num_fdsc�������������C���s���t�jtj|�j|�j���S�)N)r���ZpctxswrH���Zproc_num_ctx_switchesr����r����)r����r:���r:���r;����num_ctx_switches���s����zProcess.num_ctx_switchesNc�������������C���s���t�j|�j||�j�S�)N)r���Zwait_pidr����r����)r����Ztimeoutr:���r:���r;����wait���s����zProcess.wait)r����)N)*�__name__� __module__�__qualname__�__doc__� __slots__r����r����r����r���r����r����r����r����r����r����r����rK���r"���r$���r����r����r���r����r����rc���r����r����r����r����Zmemory_full_infor%���r����r����r����r����r���Znt_mmap_groupedZnt_mmap_extr����r����r����r����r:���r:���r:���r;���r����l��sL��� " 0r����l��������)Frr���)rr���)or����r����r@���r����rI���r8����collectionsr���r���ri���r���r���r���r����r���rH���r ���r ���r���r���r ���r���Z_compatr���r����_exceptionsr���r���r���Z__extra__all__rA���rB���ZAF_LINK�maxsizer����r���r���ZSSLEEPZSTATUS_SLEEPINGZSRUNZSTATUS_RUNNINGZSZOMBZ STATUS_ZOMBIEZSSTOPZSTATUS_STOPPEDZSIDLZSTATUS_IDLEZSONPROCZSWAITZSTATUS_WAITINGr����ZTCPS_ESTABLISHEDZCONN_ESTABLISHEDZ TCPS_SYN_SENTZ CONN_SYN_SENTZ TCPS_SYN_RCVDZ CONN_SYN_RECVZTCPS_FIN_WAIT_1ZCONN_FIN_WAIT1ZTCPS_FIN_WAIT_2ZCONN_FIN_WAIT2ZTCPS_TIME_WAITZCONN_TIME_WAITZTCPS_CLOSEDZ CONN_CLOSEZTCPS_CLOSE_WAITZCONN_CLOSE_WAITZ TCPS_LAST_ACKZ CONN_LAST_ACKZTCPS_LISTENZCONN_LISTENZTCPS_CLOSINGZCONN_CLOSINGZPSUTIL_CONN_NONEr����Z TCPS_IDLEZ TCPS_BOUNDry����dictr����r'���r*���r-���r2���Zpfullmemr3���ru����_fieldsr6���r<���rC���r[���rc���r`���rf���rg���rh���Zdisk_io_countersrk���rj���Znet_io_countersZnet_if_addrsrv���r����r����r����r����r����r�����objectr����r:���r:���r:���r;����<module>���s���� & $