File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/pam.cpython-310.pyc
o
�N�g � @ sH d Z ddlZddlZddlZe�e�ZdZdd� Z d
dd�Z
dd � ZdS )z
Support for pam
� NZpamc C s t S )z-
Set the virtual name for the module
)�__virtualname__� r r �D/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/pam.py�__virtual__ s r c C sr | rn2|r-t j�|�r-tjj�|d��}tjj�|� � �} W d � n1 s'w Y nt
�d|� dS g }| �� D ]{}|s@q;|�
d�rFq;d}d}g }|�� }|d } d}
|d �
d �r�|d �d d�}|d
d� D ]#}|
d7 }
|�d�r�|d�|�dd��7 }|
d7 }
n|d
|� �7 }qkn|d }|
d7 }
||
}t|�|
kr�|
d7 }
||
d� }|�| |||d�� q;|S )z*
Parse a standard pam config file
�rNzFile "%s" does not existF�#� r � �[� �]z {}� )� interface�control_flag�module� arguments)�os�path�exists�salt�utils�filesZfopenZstringutilsZ
to_unicode�read�log�error�
splitlines�
startswith�split�replace�endswith�format�len�append)�contents� file_nameZifileZrules�liner r r �compsr �position�partr r r �_parse sZ ��
���r) c C s
t | d�S )z�
This is just a test function, to make sure parsing works
CLI Example:
.. code-block:: bash
salt '*' pam.read_file /etc/pam.d/login
�r$ )r) r* r r r � read_fileL s
r+ )NN)�__doc__�loggingr Zsalt.utils.filesr � getLogger�__name__r r r r) r+ r r r r �<module> s
5