a c8h;ã@s"ddlZddlZGdd„dƒZdS)éNc@s€eZdZGdd„deƒZddd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zddd„ZdS)ÚClPwdc@seZdZdd„ZdS)zClPwd.NoSuchUserExceptioncCst |d|f¡dS)NzNo such user (%s))Ú ExceptionÚ__init__©ÚselfÚuser©rú8/usr/lib/python3.9/site-packages/up2date_client/clpwd.pyrsz"ClPwd.NoSuchUserException.__init__N)Ú__name__Ú __module__Ú __qualname__rrrrr ÚNoSuchUserExceptionsr NcCs8i|_i|_i|_i|_|dur.| d¡|_n||_dS)Néô)Ú _user_key_mapÚ _uid_key_mapÚ_user_full_mapÚ _uid_full_mapÚget_sys_min_uidÚ_min_uid)rZmin_uidrrr r szClPwd.__init__cCs| ¡|jS©N)Ú_load_passwd_databaser©rrrr Ú get_user_dictszClPwd.get_user_dictcCs| ¡|jSr)rrrrrr Ú get_uid_dictszClPwd.get_uid_dictcCs| ¡|jSr)rrrrrr Úget_user_full_dictszClPwd.get_user_full_dictcCs| ¡|jSr)rrrrrr Úget_uid_full_dictszClPwd.get_uid_full_dictcCs0z| ¡|WSty*t |¡‚Yn0dS)z* Return pw_entry for user N)rÚKeyErrorrr rrrr Úget_pw_by_name#s zClPwd.get_pw_by_namecCs0z| ¡|WSty*t |¡‚Yn0dS)z7 Return list of passwd entries for uid N©rrrr )rÚuidrrr Ú get_pw_by_uid,s zClPwd.get_pw_by_uidcCs2z| ¡|jWSty,t |¡‚Yn0dS)z& Returns uid for user N)rÚpw_uidrrr rrrr Úget_uid5s z ClPwd.get_uidcCs2z| ¡|jWSty,t |¡‚Yn0dS)z` Returns homedir for a user @param user: string @return: string N)rÚpw_dirrrr rrrr Ú get_homedir>s zClPwd.get_homedircCs|jsŒt ¡D]|}||j|j<|j|jvr6g|j|j<|j|j |¡|j|jkr||j|j<|j|j vrxg|j |j<|j |j |¡qdS)zZ Loads the passwd database and fills user_to_uid and user_to_homedir maps N) rÚpwdÚgetpwallrÚpw_namer!Úappendrrr)rÚentryrrr rIs        zClPwd._load_passwd_databasecCs<z| ¡|}Wnty,t |¡‚Yn0dd„|DƒS)zs Return names of users with uid specified @param uid: int @return: list of strings cSsg|] }|j‘qSr)r')Ú.0r)rrr Ú dóz#ClPwd.get_names..r)rrÚentriesrrr Ú get_namesYs  zClPwd.get_namesrc Csd}tj |¡rŒt|dƒb}|D]L}| d¡r z*t| d¡d ¡ƒWWdƒStyjYq 0q Wdƒn1s‚0Y|S)z Return system defined MIN_UID from /etc/login.def or def_min_uid @param def_min_uid: int @return: MIN_UID: int z/etc/login.defsÚrZUID_MINéN) ÚosÚpathÚexistsÚopenÚ startswithÚintÚsplitÚstripÚ ValueError)rZ def_min_uidZLOGIN_DEF_FILEÚlinesÚlinerrr rgs   * &zClPwd.get_sys_min_uid)N)r)r r r rr rrrrrrr r"r$rr.rrrrr rs     r)r%r1rrrrr Ús