HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/beacons/__pycache__/sh.cpython-310.pyc
o

�N�g��@s^dZddlZddlZddlZddlZddlZdZe�e	�Z
dd�Zdd�Zdd	�Z
d
d�ZdS)zP
Watch the shell commands being executed actively. This beacon requires strace.
�N�shcCs,tjj�d�r	tSd}t�dt|�d|fS)z*
    Only load if strace is installed
    �stracezstrace is missing.zUnable to load %s beacon: %sF)�salt�utils�path�which�__virtualname__�log�error)�err_msg�r�C/opt/saltstack/salt/lib/python3.10/site-packages/salt/beacons/sh.py�__virtual__s
rcCsdt��}dtvr#|tddkr|td<tdStd�td<tdS|td<td�td<tdS)z0
    Return the valid shells on this system
    zsh.last_shells�z
cmd.shellsz	sh.shells)�time�__context__�__salt__)�startrrr
�_get_shellss��rcCst|t�sdSdS)z+
    Validate the beacon configuration
    )Fz+Configuration for sh beacon must be a list.)TzValid beacon configuration)�
isinstance�list)�configrrr
�validate-s
rcsg}d}t�}td��g}�D]�t��fdd�|D��r#|���q|tvr,it|<|D]6��t|vrdddddd	��g}it|�<tjjj|d
d
ddd�t|�d
<���	d�t|�d<q.t
t|�D]��d}d}t|�d
jr�t|�d
��\}}	|	s�n|tjj
�|p�d�7}||	7}t|�d
jsz|�d�D]C}
g�d�}d|
vr�|
�d�d�d�}t|�D]\}
}|
dkr�||d<q�|
ddkr�|d�|�q�t|�d|d<|�|�q�t|�d
���st|�d
��t|���qk|S)z�
    Scan the shell execve routines. This beacon will convert all login shells

    .. code-block:: yaml

        beacons:
          sh: []
    zsh.vtzstatus.procsc3s*�|]}���dd��d�|vVqdS)�cmd��-N)�get�lstrip)�.0�shell��pidZps_outrr
�	<genexpr>Fs�(zbeacon.<locals>.<genexpr>rz-fz-e�execvez-pTF)Z
log_stdoutZ
log_stderrZ
stream_stdoutZ
stream_stderr�vt�userr�
)�args�tag��"r�rr')rr�any�appendrrrr$ZTerminalrrZhas_unread_data�recvZstringutilsZ
to_unicode�split�	enumerateZisalive�close�pop)r�retZpkeyZshellsZ
track_pidsr�out�errZtoutZterr�line�event�compsZind�fieldrr r
�beacon7sj	

����
�
��r:)�__doc__�loggingrZsalt.utils.pathrZsalt.utils.stringutilsZ
salt.utils.vtr�	getLogger�__name__r	rrrr:rrrr
�<module>s