o
    O6ufô  ã                   @   sR   d dl mZmZmZmZ G dd„ deƒZG dd„ deeƒZG dd„ deeeƒZdS )	é    )ÚPluginÚRedHatPluginÚDebianPluginÚUbuntuPluginc                       s4   e Zd ZdZdZdZdZ‡ fdd„Zdd„ Z‡  Z	S )	ÚLdapzLDAP configurationÚldap)ÚidentityÚsysmgmtÚsystemz/etc/openldap/ldap.confc                    s   t ƒ  ¡  |  d¡ d S )Nú/etc/ldap.conf)ÚsuperÚsetupÚadd_copy_spec©Úself©Ú	__class__© ú9/usr/lib/python3/dist-packages/sos/report/plugins/ldap.pyr      s   
z
Ldap.setupc                 C   s   |   ddd¡ d S )Nr   ú(\s*bindpw\s*)\S+z\1******)Údo_file_subr   r   r   r   Úpostproc   s   zLdap.postproc)
Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_nameÚprofilesÚ	ldap_confr   r   Ú__classcell__r   r   r   r   r      s    r   c                       ó0   e Zd ZdZdZ‡ fdd„Z‡ fdd„Z‡  ZS )Ú
RedHatLdap)Úopenldapznss-pam-ldapd)r   ú/etc/pam_ldap.confc                    s<   t ƒ  ¡  |  g d¢¡ |  | jddddg¡ |  d¡ d S )N)z/etc/openldap/certs/passwordz/etc/openldap/certs/pwfile.txtz/etc/openldap/certs/pin.txtz/etc/openldap/certs/*passw*z/etc/openldap/certs/key3.dbz/etc/openldap/certs/cert8.dbz/etc/openldap/certs/secmod.dbú/etc/nslcd.confr#   zcertutil -L -d /etc/openldap)r   r   Úadd_forbidden_pathr   r   Úadd_cmd_outputr   r   r   r   r   !   s   
ûzRedHatLdap.setupc                    s&   t ƒ  ¡  dD ]	}|  |dd¡ qd S )N)r$   r#   r   ú
\1********)r   r   r   )r   Úfiler   r   r   r   4   s   
ýÿzRedHatLdap.postproc)r   r   r   ÚpackagesÚfilesr   r   r   r   r   r   r   r!      s
    r!   c                       r    )Ú
DebianLdapz/etc/ldap/ldap.conf)Úslapdz
ldap-utilsc                    sf   t ƒ  ¡  d}|  | jdddg¡ |  d¡ | j|d dd� | j|d	 d
d� | j|d dd� d S )Nz,ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// z/etc/slapd.confz/etc/ldap/slapd.dr$   z+ldapsearch -x -b '' -s base 'objectclass=*'z/-b cn=config '(!(objectClass=olcSchemaConfig))'Úconfiguration_minus_schemas)Úsuggest_filenamez-b cn=schema,cn=config dnÚloaded_schemasz0-b cn=config '(olcAccess=*)' olcAccess olcSuffixÚaccess_control_lists)r   r   r   r   r&   )r   Úldap_searchr   r   r   r   C   s*   
ü
þþ
þzDebianLdap.setupc                    s*   t ƒ  ¡  |  ddd¡ |  ddd¡ d S )Nr$   r   r'   Ú
ldapsearchz(olcRootPW\: \s*)\S+)r   r   r   Údo_cmd_output_subr   r   r   r   r   Z   s   
ýýzDebianLdap.postproc)r   r   r   r   r)   r   r   r   r   r   r   r   r+   >   s
    r+   N)Úsos.report.pluginsr   r   r   r   r   r!   r+   r   r   r   r   Ú<module>   s   "