a ۔*j;@s"ddlZddlZGdddZdS)Nc@seZdZGdddeZdddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZdddZdS)ClPwdc@seZdZddZdS)zClPwd.NoSuchUserExceptioncCst|d|fdS)NzNo such user (%s)) Exception__init__selfuserr8/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_mapget_sys_min_uid_min_uid)rZmin_uidrrr r szClPwd.__init__cCs||jSN)_load_passwd_databaserrrrr 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)rKeyErrorrr rrrr get_pw_by_name#s zClPwd.get_pw_by_namecCs0z||WSty*t|Yn0dS)z7 Return list of passwd entries for uid Nrrrr )ruidrrr get_pw_by_uid,s zClPwd.get_pw_by_uidcCs2z||jWSty,t|Yn0dS)z& Returns uid for user N)rpw_uidrrr rrrr get_uid5s z ClPwd.get_uidcCs2z||jWSty,t|Yn0dS)z` Returns homedir for a user @param user: string @return: string N)rpw_dirrrr rrrr get_homedir>s zClPwd.get_homedircCs|jstD]|}||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) rpwdgetpwallrpw_namer!appendrrr)rentryrrr rIs        zClPwd._load_passwd_databasecCs<z||}Wnty,t|Yn0dd|DS)zs Return names of users with uid specified @param uid: int @return: list of strings cSsg|] }|jqSr)r').0r)rrr dz#ClPwd.get_names..r)rrentriesrrr get_namesYs  zClPwd.get_namesrc Csd}tj|rt|db}|D]L}|dr z*t|ddWWdStyjYq 0q Wdn1s0Y|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.defsrZUID_MINN) ospathexistsopen startswithintsplitstrip ValueError)rZ def_min_uidZLOGIN_DEF_FILElineslinerrr rgs   * &zClPwd.get_sys_min_uid)N)r)r r r rr rrrrrrr r"r$rr.rrrrr rs     r)r%r1rrrrr s