File: //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/ssh.cpython-312.pyc
�
O6uf� � �D � d dl Z d dlmZ d dlmZmZmZ G d� dee� Zy)� N)�glob)�Plugin�IndependentPlugin� PluginOptc �D � e Zd ZdZdZdZ edded�� gZd� Z d � Z
d
� Zy)�SshzSecure shell service�ssh)�services�security�system�identity� userconfsTz5Changes whether module will collect user .ssh configs)�default�val_type�descc � � | j ddd�� g d�}| j |� | j |� | j d� r| j � y y )N�sshd_config�
ssh_config)z/etc/ssh/sshd_config$z/etc/ssh/ssh_config$)z/etc/ssh/ssh_configz/etc/ssh/sshd_configz/etc/ssh/sshd_config.d/*r )�
add_file_tags�
add_copy_spec�included_configs�
get_option�user_ssh_files_permissions)�self�sshcfgss �8/usr/lib/python3/dist-packages/sos/report/plugins/ssh.py�setupz Ssh.setup s_ � ����%2�$0�
� �
��
���7�#����g�&� �?�?�;�'��+�+�-� (� c �. � |D �cg c] }t |d�� �� c}D ��cg c] }|D ] }|�� �
}}}|D ]� }|j d� d }t | j |� dd�� 5 }|D ]v } t | j � � dk( s| j d � r�1| j
� j d
� s�Q| j � }
| j |
d |�� �x d
d
d
� �� y
c c}w c c}}w # 1 sw Y ��xY w# t $ r Y y
w xY w)z Include subconfig files T)� recursive�/����rzUTF-8)�encodingr �#�include� )�tagsN) r �split�open� path_join�len�
startswith�lowerr � Exception)r r �copyspec�files�f�cfgfiles�sshcfg�tag�cfgfile�line�confargs r r zSsh.included_configs3 s9 � � � DK� �7?�D��T�2� ��� �� � ����H� �
#�
E���l�l�3�'��+���$�.�.��0�#�#*�,� E�/6� '� E���t�z�z�|�,��1�T�_�_�S�5I�$��:�:�<�2�2�9�=�&*�j�j�l�G� �.�.�w�q�z��.�D�E� E� E�
E�� ��� E� E�� � �� �sJ �D �C1�D �C6�9D �)AC<�=(C<�&
D �1D �<D �D � D�Dc � � t j � }|D ]D }| j |j d� }| j |� s�1| j d|� �� �F y)z�
Iterate over .ssh folders in user homes to see their permissions.
Bad permissions can prevent SSH from allowing access to given user.
z.sshzls -laZ N)�pwd�getpwallr+ �pw_dir�
path_isdir�add_cmd_output)r �
users_data�user�home_dirs r r zSsh.user_ssh_files_permissionsK sU � � �\�\�^�
� � ;�D��~�~�d�k�k�6�:�H����x�(��#�#�h�x�j�$9�:� ;r N)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profilesr �str�option_listr r r � r r r r s<