File: //lib/python3/dist-packages/sos/report/plugins/__pycache__/ssh.cpython-38.pyc
U
i��d
� @ s* d dl mZmZmZ G dd� dee�ZdS )� )�Plugin�IndependentPlugin� PluginOptc @ sB e Zd ZdZdZdZeddedd�gZdd � Z d
d� Z
dd
� ZdS )�SshzSecure shell serviceZssh)�servicesZsecurity�systemZidentity� userconfsTz5Changes whether module will collect user .ssh configs)�defaultZval_typeZdescc C sB | � ddd�� ddg}| �|� | �|� | �d�r>| �� d S )NZsshd_configZ
ssh_config)z/etc/ssh/sshd_config$z/etc/ssh/ssh_config$z/etc/ssh/ssh_configz/etc/ssh/sshd_configr )Z
add_file_tags�
add_copy_spec�included_configsZ
get_option�user_ssh_files_permissions)�self�sshcfgs� r �8/usr/lib/python3/dist-packages/sos/report/plugins/ssh.py�setup s ��
z Ssh.setupc
C s� z�|D ]|}|� d�d }t| �|�d��T}|D ]H}t|� � �dks.|�d�rNq.|�� �d�r.|� � }| j|d |d� q.W 5 Q R X qW n tk
r� Y nX d S ) N�/����rr �#Zinclude� )Ztags)�split�open� path_join�len�
startswith�lowerr
� Exception)r
r Zsshcfg�tagZcfgfile�lineZconfargr r r r 0 s $zSsh.included_configsc C s� | � d�}|d r\z&t| �d���}|�� }W 5 Q R X W qh tk
rX | �d� Y dS X n|d �� }|D ]N}z4| �|�d�d d �}| �|�r�| � d
�
|�� W ql tk
r� Y qlX qldS )z�
Iterate over .ssh folders in user homes to see their permissions.
Bad permissions can prevent SSH from allowing access to given user.
z
getent passwdZstatusz/etc/passwdzCouldn't read /etc/passwdN�output�:� z.sshz
ls -laZ {})Zexec_cmdr r � readlinesr Z
_log_error�
splitlinesr Z
path_isdirZadd_cmd_output�format�
IndexError)r
Z
users_dataZpasswd_fileZusers_data_linesZusr_lineZhome_dirr r r r A s
zSsh.user_ssh_files_permissionsN)�__name__�
__module__�__qualname__Z
short_descZplugin_nameZprofilesr �strZoption_listr r r r r r r r s ��r N)Zsos.report.pluginsr r r r r r r r �<module> s