+
    ˜qgjF)  ã                   ó2  a € R t&0 t R t^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
HtHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ RIHt ^ R	IHt ^ R
IHt RRR].R]R. /t] ^ k ]P<                  ! ]4      t R R lt!R R lt"R R lt#R R lt$RR lt%R# )zFSet Passwords: Set user passwords and enable/disable SSH password authN)ÚList)ÚfeaturesÚ	lifecycleÚsubpÚutil)ÚCloud)ÚConfig)Ú
MetaSchema)ÚALL_DISTROSÚDistroÚug_util)Úlog_util)ÚPER_INSTANCE)Úupdate_ssh_configÚidÚcc_set_passwordsÚdistrosÚ	frequencyÚactivate_by_schema_keysc                ó<   € V ^8„  d   QhR\         R\        R\         /# )é   Ú
users_listÚpw_typeÚreturn)ÚlistÚstr)Úformats   "ÚC/usr/lib/python3/dist-packages/cloudinit/config/cc_set_passwords.pyÚ__annotate__r   #   s!   € ÷ 
ñ 
¤$ð 
´ð 
¼ñ 
ó    c                ó¨   € V '       g   . # V  Uu. uF7  pVP                  RR4      V8X  g   K  VR,          VP                  RR4      3NK9  	  up# u upi )zDeither password or type: RANDOM is required, user is always requiredÚtypeÚhashÚnameÚpasswordÚRANDOM)Úget)r   r   Úitems   && r   Úget_users_by_typer(   #   sa   € ÷ ð 	ðñ
 #ó
á"�Ø�x‰x˜ Ó'¨7Ñ2ô ;ˆT�&�\˜4Ÿ8™8 J°Ó9Ó:Ù"ñ
ðùò
s
   �A­Ac                ó<   € V ^8„  d   QhR\         R\        R\        /# )r   ÚdistroÚserviceÚ
extra_args)r   r   )r   s   "r   r   r   0   s!   € ÷ 	
ñ 	
¤ð 	
´ð 	
Ä3ñ 	
r   c                 óÎ   €  V P                   ! R V.VO5!   \        P                  R4       R#   \        P                   d"   p\        P                  RT4        Rp?R# Rp?ii ; i)ÚrestartzRestarted the SSH daemon.zm'ssh_pwauth' configuration may not be applied. Cloud-init was unable to restart SSH daemon due to error: '%s'N)Úmanage_serviceÚLOGÚdebugr   ÚProcessExecutionErrorÚwarning)r*   r+   r,   Úes   &&* r   Ú_restart_ssh_daemonr5   0   sX   € ð
Ø×Ò˜i¨Ð>°:Ô>Ü�	‰	Ð-Ö.øÜ×%Ñ%ô 
Ü�‰ð>à÷	
ò 	
ûð
ús   ‚*. ®A$ÁAÁA$c                ó$   € V ^8„  d   QhR\         /# )r   r*   )r   )r   s   "r   r   r   <   s   € ÷ ?-ñ ?-¤vñ ?-r   c                óò  € VP                  RR4      pRp\        V \        4      '       d   \        P                  ! RRRR7       \
        P                  ! V 4      '       d   RpMn\
        P                  ! V 4      '       d   R	pMOR
V R2pV e   V P                  4       R8X  d   \        P                  RWP4       R# \        P                  RWP4       R# \        W4/4      pV'       g   \        P                  RV4       R# VP                  4       '       dZ   \        P                  ! RRRRRV.4      P                  P!                  4       pVP                  4       R9   d   \#        WR4       R# R# \#        W4       R# )zïApply sshd PasswordAuthentication changes.

@param pw_auth: config setting from 'pw_auth'.
                Best given as True, False, or "unchanged".
@param distro: an instance of the distro class for the target distribution

@return: NoneÚssh_svcnameÚsshÚPasswordAuthenticationz-Using a string value for the 'ssh_pwauth' keyú22.2z&Use a boolean value with 'ssh_pwauth'.©Ú
deprecatedÚdeprecated_versionÚextra_messageÚyesÚnozLeaving SSH config 'z' unchanged.NÚ	unchangedz%s ssh_pwauth=%sz$%s Unrecognized value: ssh_pwauth=%sz/No need to restart SSH service, %s not updated.Ú	systemctlÚshowz
--propertyÚActiveStatez--valuez--job-mode=ignore-dependencies)ÚactiveÚ
activatingÚ	reloading)Ú
get_optionÚ
isinstancer   r   Ú	deprecater   Úis_trueÚis_falseÚlowerr0   r1   r3   r   Úuses_systemdr   ÚstdoutÚstripr5   )Úpw_authr*   r+   Úcfg_nameÚcfg_valÚbmsgÚupdatedÚstates   &&      r   Úhandle_ssh_pwauthrX   <   sH  € ð ×Ñ ¨uÓ5€Gà'€Hä�'œ3×ÒÜ×ÒØFØ%ØBõ	
ô
 ‡|‚|�G×ÒØ‰Ü	�Š�w×	Ò	Ø‰à% h Z¨|Ð<ˆØŠ?˜gŸm™m›o°Ô<Ü�I‰IÐ(¨$Ô8ñ 	ô �K‰KÐ>ÀÔNÙä Ð 3Ó4€GßÜ�	‰	ÐCÀXÔNÙà×Ñ×ÒÜ—	’	àØØØØØðó	
÷ ‰&—‘“ð 	ð �;‰;‹=ÐAÔAô  ØÐ!Aöñ Bô" 	˜FÖ,r   c          
      óL   € V ^8„  d   QhR\         R\        R\        R\        RR/# )r   r#   ÚcfgÚcloudÚargsr   N)r   r   r   r   )r   s   "r   r   r   ~   s6   € ÷ Eñ E”ð Eœ6ð E¬%ð E´tð EÀñ Er   c                 ób  € VP                   pV'       d*   V^ ,          pRV9   d   RVR,          9   d   VR,          R M\        P                  ! VRR4      pRp. p. pRV9   Ed   VR,          p	\        P                  ! V	R. R7      pRV	9   dÑ   V	R,          '       dÂ   \        P
                  ! RR	R
R7       \        V	R,          \        4      '       d/   \        P                  R4       \        P                  ! V	RV4      pM]\        P
                  ! RRRR7       \        P                  R4       \        P                  ! V	R4      p
V
'       d   V
P                  4       p\        P                  ! V	RV4      pV'       gi   V'       ga   V'       dY   \        P                  ! W4      w  r¼\        P                  ! V4      w  rÞV'       d   V: RV: 2.pM\        P                  R4       . pV'       g
   V'       Ed…   \!        VR4      pV UUu. uF  w  ppVNK
  	  ppp\!        VR4      pV UUu. uF  w  ppVNK
  	  ppp. p\!        VR4       FI  w  pp\#        4       pVP%                  V4       VP%                  WÕ34       VP%                  V RV 24       KK  	  \&        P(                  ! R4      pV F¬  pVP+                  R^4      w  ppVP-                  V4      e.   RV9  d'   VP%                  VV34       VP%                  V4       KX  VR8X  g   VR8X  d#   \#        4       pVP%                  V: RV: 24       VP%                  VV34       VP%                  V4       K®  	  V'       d+    \        P                  RV4       VP/                  VRR7       V'       d+    \        P                  RV4       VP/                  VRR7       \5        V4      '       d4   RR P7                  V4      3p\8        P:                  ! R!V,          RRR"7       V'       dn   Tp\<        P>                  '       d
   VV,          p. pV F&  p VPA                  V4       VP%                  V4       K(  	  V'       d   \        P                  R$V4       \C        VPE                  R%4      V4       \5        V4      '       d)   \        P                  R&\5        V4      4       VR',          hR# u uppi u uppi   \0         d9   pTP%                  T4       \        P2                  ! \        RT4        Rp?EL‹Rp?ii ; i  \0         d9   pTP%                  T4       \        P2                  ! \        RT4        Rp?ELŸRp?ii ; i  \0         d:   pTP%                  T4       \        P2                  ! \        R#T4        Rp?EKu  Rp?ii ; i)(é    Úchpasswdr   r$   NTÚusers)ÚdefaultzConfig key 'lists'z22.3zUse 'users' instead.r<   z$Handling input for chpasswd as list.zThe chpasswd multiline stringr;   zUse string type instead.z0Handling input for chpasswd as multiline string.ÚexpireÚ:z2No default or defined user to change password for.Útextr"   r%   z\$(1|2a|2y|5|6)(\$.+){2}ÚRzChanging password for %s:F)Úhashedz,Failed to set passwords with chpasswd for %szSetting hashed password for %s:z3Failed to set hashed passwords with chpasswd for %sz%Set the following 'random' passwords
Ú
z%s
%s
)ÚstderrÚfallback_to_stdoutzFailed to set 'expire' for %szExpired passwords for: %s usersÚ
ssh_pwauthz+%s errors occurred, re-raising the last oneéÿÿÿÿ)#r*   r   Úget_cfg_option_strÚget_cfg_option_listr   rK   rJ   r   r0   r1   Ú
splitlinesÚget_cfg_option_boolr   Únormalize_users_groupsÚextract_defaultr3   r(   Úrand_user_passwordÚappendÚreÚcompileÚsplitÚmatchr_   Ú	ExceptionÚlogexcÚlenÚjoinr   Ú	multi_logr   ÚEXPIRE_APPLIES_TO_HASHED_USERSÚexpire_passwdrX   r&   )r#   rZ   r[   r\   r*   r$   rb   Úplistr   ÚchfgÚ	multiliner`   Ú_groupsÚuserÚ_user_configÚerrorsÚplist_inÚ_Úhashed_plist_inÚhashed_usersÚrandlistÚprogÚlineÚuÚpr4   ÚblurbÚusers_to_expireÚexpired_userss   &&&&                         r   Úhandler’   ~   s­  € Ø—\‘\€Fßà˜•7ˆØ˜Ô ¨3¨z­?Ô!:Ø�J• Ð'øä×*Ò*¨3°
¸DÓAˆà€FØ€EØ€Jà�SÕØ�:�ˆÜ×-Ò-¨d°GÀRÔHˆ
Ø�TŒ>˜d 6ŸlœlÜ×ÒØ/Ø#)Ø4õô
 ˜$˜v�,¬×-Ò-Ü—	‘	Ð@ÔAÜ×0Ò0°°v¸uÓE‘ä×#Ò#Ø>Ø'-Ø"<õô
 —	‘	ÐLÔMÜ ×3Ò3°D¸&ÓA�	ßØ%×0Ñ0Ó2�Eä×)Ò)¨$°¸&ÓAˆçŸ%§XÜ"×9Ò9¸#ÓFÑˆÜ&×6Ò6°uÓ=ÑˆßÛ $¢hÐ/Ð0‰Eä�K‰KÐLÔMà€Fß—
�
ô % Z°Ó8ˆÙ%-Ô.¡X™'˜$ “¡XˆÑ.Ü+¨J¸Ó?ˆÙ,;Ô<©O¡  q›©OˆÑ<ØˆÜ(¨°XÖ>‰GˆD�!Ü)Ó+ˆHØ�L‰L˜ÔØ�O‰O˜TÐ,Ô-Ø�O‰O˜t˜f A h ZÐ0Ö1ñ	 ?ô �zŠzÐ5Ó6ˆÛˆDØ—:‘:˜c 1Ó%‰DˆAˆqØ�z‰z˜!‹}Ò(¨S¸¬\Ø×&Ñ&¨¨1 vÔ.Ø×#Ñ# AÖ&ð ˜”8˜q Hœ}Ü*Ó,�AØ—O‘O«q²!Ð$4Ô5Ø—‘  A Ô'Ø—‘˜Q–ñ ÷ ðÜ—	‘	Ð5°uÔ=Ø—‘ °�Ô7÷ ð	Ü—	‘	Ð;¸\ÔJØ—‘ ¸�Ô=ô ˆx�=Š=à8Ø—	‘	˜(Ó#ðˆEô ×ÒØ˜UÕ"¨5ÀUõ÷ Ø#ˆOÜ×6×6Ð6Ø <Õ/�ØˆMÛ$�ðIØ×(Ñ(¨Ô+Ø!×(Ñ(¨Ö+ñ %÷ Ü—	‘	Ð;¸]ÔKä�c—g‘g˜lÓ+¨VÔ4ä
ˆ6‡{‚{Ü�	‰	Ð?ÄÀVÃÔMØ�R�jÐñ ùó] /ùã<øô@ ô Ø—‘˜aÔ Ü—’ÜÐGÈ÷ò ûðûô ô Ø—‘˜aÔ Ü—’ÜØIØ ÷ò ûðûô4 !ô IØ—M‘M !Ô$Ü—K’K¤Ð%DÀa×HÓHûðIúsT   È	SÈ+SÍ()S Î)T$ Ð8"U*ÓT!Ó)-TÔT!Ô$U'Ô/-U"Õ"U'Õ*V.Õ5-V)Ö)V.c           
      óª  € V ^8  d   \        R4      h\        P                  ! \        P                  4      \        P                  ! \        P
                  4      \        P                  ! \        P                  4      \        P                  ! \        P                  4      .pVP                  \        \        P                  ! V \        V4      ,
          \        P                  \        P
                  ,           \        P                  ,           \        P                  ,           R7      4      4       \        P                  ! V4       RP                  V4      # )é   z.Password length must be at least 4 characters.)Úselect_fromÚ )Ú
ValueErrorÚrandomÚchoiceÚstringÚdigitsÚascii_lowercaseÚascii_uppercaseÚpunctuationÚextendr   r   Úrand_strrz   Úshuffler{   )ÚpwlenÚres_rand_lists   & r   rr   rr     så   € Øˆq„yÜÐIÓJÐJô 	�Š”f—m‘mÓ$Ü�Š”f×,Ñ,Ó-Ü�Š”f×,Ñ,Ó-Ü�Š”f×(Ñ(Ó)ð	€Mð ×ÑÜÜ�MŠMØœ˜MÓ*Õ*Ü"ŸM™MÜ×(Ñ(õ)ä×(Ñ(õ)ô ×$Ñ$õ%ôó	
ô
ô ‡N‚N�=Ô!Ø�7‰7�=Ó!Ð!r   c                ó@   € V ^8„  d   Qh/ ^ \         9   d
   \        ;R&   # )r   Úmeta)Ú__conditional_annotations__r	   )r   s   "r   r   r      s   € × LÑ L÷"ò „jñ ò# Mr   )é   )'r¦   Ú__doc__Úloggingr˜   rt   rš   Útypingr   Ú	cloudinitr   r   r   r   Úcloudinit.cloudr   Úcloudinit.configr   Úcloudinit.config.schemar	   Úcloudinit.distrosr
   r   r   Úcloudinit.logr   Úcloudinit.settingsr   Úcloudinit.ssh_utilr   r¥   Ú	getLoggerÚ__name__r0   r(   r5   rX   r’   rr   r   )r¦   s   @r   Ú<module>rµ      sŒ   øðö Mã Û Û 	Û Ý ç 5Ó 5Ý !Ý #Ý .ß :Ñ :Ý "Ý +Ý 0ð 	Ð
Ø�ˆ}Ø�Ø˜rð	€ó ð ×Ò˜Ó!€õ
õ	
õ?-õDEöP"r   