3 0Q=j; @ s" d dl Z d dlZG dd dZdS ) Nc @ s e Zd ZG dd deZdddZdd Zdd Zd d Zdd Z dd Z dd Zdd Zdd Z dd Zdd ZdddZdS )ClPwdc @ s e Zd Zdd ZdS )zClPwd.NoSuchUserExceptionc C s t j| d|f d S )NzNo such user (%s)) Exception__init__)selfuser r /usr/lib/python3.6/clpwd.pyr s z"ClPwd.NoSuchUserException.__init__N)__name__ __module____qualname__r r r r r NoSuchUserException s r Nc C s8 i | _ i | _i | _i | _|d kr.| jd| _n|| _d S )Ni ) _user_key_map_uid_key_map_user_full_map _uid_full_mapget_sys_min_uid_min_uid)r Zmin_uidr r r r s zClPwd.__init__c C s | j | jS )N)_load_passwd_databaser )r r r r get_user_dict s zClPwd.get_user_dictc C s | j | jS )N)r r )r r r r get_uid_dict s zClPwd.get_uid_dictc C s | j | jS )N)r r )r r r r get_user_full_dict s zClPwd.get_user_full_dictc C s | j | jS )N)r r )r r r r get_uid_full_dict s zClPwd.get_uid_full_dictc C s0 y| j | S tk r* tj|Y nX dS )z* Return pw_entry for user N)r KeyErrorr r )r r r r r get_pw_by_name# s zClPwd.get_pw_by_namec C s0 y| j | S tk r* tj|Y nX dS )z7 Return list of passwd entries for uid N)r r r r )r uidr r r get_pw_by_uid, s zClPwd.get_pw_by_uidc C s2 y| j | jS tk r, tj|Y nX dS )z& Returns uid for user N)r pw_uidr r r )r r r r r get_uid5 s z ClPwd.get_uidc C s2 y| j | jS tk r, tj|Y nX dS )z` Returns homedir for a user @param user: string @return: string N)r pw_dirr r r )r r r r r get_homedir> s zClPwd.get_homedirc C s | j sxtj D ]|}|| j|j<