Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
ó ß8„Yc;@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlTddlZddlZejZyddlaWnek r danXdZdZdZdZdZdZd Zd Z d Z!d Z"d Z#dZ$de%e&ƒdƒkr‹dZ'ndZ'e'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3e'dZ4e'd Z5ej6j7e5ƒse'd Z5ne'd!Z8e'd"Z9e'd#Z:e'd$Z;e'd%Z<e'd&Z=e(d'Z>e(d(Z?e(d)Z@e(d*ZAe(d+ZBe(d,ZCe'd-ZDd.ZEd/ZFd0ZGd1ZHd2ZId3ZJed4ZKd5ZLd6ZMd7ZNd8ZOd9ZPd:ZQd;ZRd<ZSd=ZTd>ZUd?ZVd@ZWdAZXdBZYdC„ZZdD„Z[dE„Z\dF„Z]dG„Z^dH„Z_dI„Z`dJ„ZadK„ZbdL„ZcdM„ZddN„ZedO„ZfdP„ZgdQ„ZhdR„ZidS„ZjdTgZkdTdUgZldVgZmdVgZndTdWdXdYgZodZgZpdVgZqdUgZrgZsd[gZtd[d\gZud]gZvdVgZwdVd^gZxdUgZydVgZzdUgZ{dVgZ|d_d`dagZ}dbd`dcgZ~dddcdegZdfdcdegZ€dVgZ�dUgZ‚dVgZƒdUgZ„dggZ…dhgZ†dhgZ‡dhgZˆdidjdcgZ‰dkdlgZŠdmdndlgZ‹dogZŒdpdqdrdsdtgZ�eŽdudvƒ\Z�Z�Z‘Z’dwdxdydzgZ“eŽdud{ƒ\Z”Z•Z–Z—Z˜eŽdud{ƒ\Z™ZšZ›ZœZ�ge™eše›eœe�fD] Zžg^q©ZŸe e�eLd|gge e�eLd}eŒge¡e�eLd~ddmgge¡e�eVd€e€ge¡e�eRd�etge¡e�eOd‚exge¡e�eNdƒgge¡e�eNd„gge¡e�eYd€e}ge¡e�eYd…gge e�eNd†ekge¡e�eMd€e}ge¡e�eNd‡eƒge¡e�eNdˆemge¡e�eNd‰emge¡e�eNdŠeqge¡e�eNd‚ewge¡e�eNd‹ezge¡e�eNdŒe|ge¡e�eNd�e�ge¡e�eLd~dŽgge e�eLd�gge¡e�eLd�gge¡e�eLd~gge e�eLd†gge¡e�eNd…gge e�eNd€e~ge¡e�ePd‡gge¡e�ePd‹gge¡e�ePd‚gge¡e�ePd�gge e�eLdƒgge¡e’eMd‘eoge¡e’eMd’epge e’eNd†elge¡e’eNd‡e„ge¡e’eNdˆenge¡e’eNd‰enge¡e’eNd“erge¡e’eNd‚eyge¡e’eNd‹e{ge¡e’eNd�e‚ge e’eLd�gge e‘eOd”e…ge e‘eLd•gge e‘eOd–gge¡e‘eOd—gge e‘eVd€ege e‘eLd†gge¡e‘eOd‡gge¡e‘eOdˆgge¡e‘eOd‰gge¡e‘eOd‚gge¡e‘eOd‹gge¡e‘eOd�ggg7eŸe™R@((s!/usr/share/authconfig/authinfo.pyt openLockedîscCsEd}|jdƒ}x)|D]!}|r|d|d7}qqW|S(NtRs kdc = s (R (tkdclisttoutputtkdc((s!/usr/share/authconfig/authinfo.pytkrbKdcòs  cCsKd}|jdƒ}x/|D]'}|r|d7}||d7}qqW|S(NRIRs admin_server = s (R (t adminserversRKt adminserver((s!/usr/share/authconfig/authinfo.pytkrbAdminServerús  cCsOd}|rK|d|d7}|t|ƒ7}|t|ƒ7}|d7}n|S(NRIR s = { s } (RMRP(trealmRJRNRK((s!/usr/share/authconfig/authinfo.pytkrbRealms cCs‰|jddƒ}t|ƒdkr-d}n |d}|djƒjdƒ}|jƒjdƒ}||kr…|jtjdƒStS(NRiiRIi(R RR!RRRRR(RRtlinelsttparamtkeylst((s!/usr/share/authconfig/authinfo.pyt matchLineSMBs   ttry_first_passt use_authtoktuse_first_passtlocal_users_onlysretry=3s authtok_type=s enforce=userstnodebugt wait_for_cardtallow_missing_nametno_subsequent_promptsuid >=t500t quiet_successsuid =)[ \t]+([0-9]+)tSysVInitServicecBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCstjd|dƒdS(Ns/sbin/service s start(R4tsystem(tselftservice((s!/usr/share/authconfig/authinfo.pyR1WscCstjd|dƒdS(Ns/sbin/service s stop >/dev/null 2>&1(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pytstopZscCs*tjd|ƒtjd|dƒdS(Ns/sbin/chkconfig --add s/sbin/chkconfig --level 345 s on(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pytenable]scCstjd|dƒdS(Ns/sbin/chkconfig --level 345 s off(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pytdisableascCs9tjd|dƒ}tj|ƒo8tj|ƒdkS(Ns/sbin/chkconfig s >/dev/null 2>&1i(R4R“t WIFEXITEDt WEXITSTATUS(R”R•trv((s!/usr/share/authconfig/authinfo.pyt isEnableddscCstjd|dƒdS(Ns/sbin/service s condrestart >/dev/null 2>&1(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pyt tryRestarths(t__name__t __module__R1R–R—R˜RœR�(((s!/usr/share/authconfig/authinfo.pyR’Vs      tSystemdServicecBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCstjd|dƒdS(Ns/bin/systemctl start s.service(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pyR1lscCstjd|dƒdS(Ns/bin/systemctl stop s.service >/dev/null 2>&1(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pyR–oscCstjd|dƒdS(Ns/bin/systemctl enable s.service >/dev/null 2>&1(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pyR—rscCstjd|dƒdS(Ns/bin/systemctl disable s.service >/dev/null 2>&1(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pyR˜uscCs9tjd|dƒ}tj|ƒo8tj|ƒdkS(Ns/bin/systemctl is-enabled s.service >/dev/null 2>&1i(R4R“R™Rš(R”R•R›((s!/usr/share/authconfig/authinfo.pyRœxscCstjd|dƒdS(Ns/bin/systemctl try-restart s.service >/dev/null 2>&1(R4R“(R”R•((s!/usr/share/authconfig/authinfo.pyR�|s(RžRŸR1R–R—R˜RœR�(((s!/usr/share/authconfig/authinfo.pyR ks      s /sbin/initcCsÂ|r^yAtj|ƒtj|ƒ|sFtj|ƒtj|ƒnWq¾tk rZq¾Xn`yLtj|ƒ|sœytj|ƒWqœtk r˜qœXntj|ƒWntk r½nXtS(N( R4tstattServiceR—R–R1R;R˜R%(R—tpathtnametnostart((s!/usr/share/authconfig/authinfo.pyttoggleSplatbindService‡s(       cCs|r dSdSdS(Ntenabledtdisabled((tval((s!/usr/share/authconfig/authinfo.pyt formatBoolžscCsýytjƒ\}}Wntk r*dSX|s§|rOt|gdtƒ}n5t|gdtdtƒ}|jd|p|ddƒ|jƒ|j}tj |ƒnd\}} y7t j |t j ƒ} t j |t j | tj @ƒWntk rýnXt} xk| sqy7g} g} tj|gg|gdƒ\} }} Wn4tjk rz\}}tjjd|dƒnX| r¢| r¢tj|ƒt} qnd}ytj|d ƒ}Wn�tk rM\}}|tjksG|tjkr÷q|tjkrtj|ƒt} qtjjd |dƒtj|ƒt} qnX|r[y½||7}| |7} |r„tjj|ƒn|r||kr| jd ƒ}tj||p·dƒtj|d ƒ|d krèd| | } nd} d}|rtjjd ƒqnWqntk rW\}}tjjd|dƒtj|ƒt} qnXqtj|ƒt} qWytj|tjƒWntk rœnXd}ytj|dƒ\}}Wn1tk rò\}}tjjd|dƒnX|| fS(NiÿtshelltstdintinputRIs i<sselect: isread: s iÿÿÿÿs<...> swrite: is waitpid: (RIRI( R4tforkptyR;tPopenR%tPIPEt communicatetwaitt returncodet_exitR7tF_GETFLtF_SETFLt O_NONBLOCKR=RtselectterrortsyststderrtwriteR<treadRBtEINTRtEAGAINtEIOtrfindtkilltsignaltSIGTERMtwaitpid(tcommandtechotquerytresponsetpidtmastertchildtstatusRKR¹titeoftifdstefdstofdsterrttexttctindex((s!/usr/share/authconfig/authinfo.pytfeedFork¤s–    "  +            cCs‚ytj|ƒ}Wntk r'tSXxS|D]K}y1tj|d|ƒ}tj|jƒretSWq/tk ryq/Xq/WtS(Nt/(R4tlistdirR;R%R¡tS_ISREGtst_modeR(R£RR>tst((s!/usr/share/authconfig/authinfo.pyt isEmptyDirþs   cCs|ycttg|dtƒ}|jƒdjdƒ}|jdkrHdS|ddkrb|d3nWntk rwdSX|S(Ntstdoutis iÿÿÿÿRI(R¯t PATH_SCSETUPR°R±R R³RR;(toptionsRÌR((s!/usr/share/authconfig/authinfo.pytcallPKCS11Setups cCs#tdgƒ}|dkrgS|S(Nt list_modules(RáR(tmods((s!/usr/share/authconfig/authinfo.pytgetSmartcardModuless cCstdƒtdƒgS(NtLocktIgnore(t_(((s!/usr/share/authconfig/authinfo.pytgetSmartcardActions scCst|ƒ}|jƒ|S(N(tAuthInfoR½(tmsgcbtinfo((s!/usr/share/authconfig/authinfo.pyR½#s  t SaveGroupcBseZd„Zd„ZRS(cCs||_||_||_dS(N(t saveFunctionttoggleFunctiontattrlist(R”tsavefunct togglefuncRï((s!/usr/share/authconfig/authinfo.pyt__init__)s  cCsÐxÉ|jD]¾\}}||jkr)tS|dkrZt||ƒt||ƒkrÈtSq |dkr‘tt||ƒt||ƒtƒrÈtSq |dkr tt||ƒt||ƒtƒrÈtSq q WtS(NR'RÕRÎ(RïtinconsistentAttrsR%tgetattrR)R(R”R&R'tanametatype((s!/usr/share/authconfig/authinfo.pyt attrsDiffer.s  $ $ (RžRŸRòR÷(((s!/usr/share/authconfig/authinfo.pyRì(s tSafeFilecBs5eZd„Zd„Zd„Zd„Zd„ZRS(cCs­tjj|ƒ\}}t|_tjd|d|dtƒ|_t dd||jj gdtj dtj ƒƒdkr t|_tj |jjƒ|ƒn||_dS( Ntdirtprefixtdeletes/bin/cps-afR»s /dev/nulli(R4R£R RtmissingttempfiletNamedTemporaryFileR%tfiletcallR¤R5tO_WRONLYtfchmodtfilenoR>(R”R>t default_modetbaseR¤((s!/usr/share/authconfig/authinfo.pyRò>s ! cCst|jjƒtj|jjƒƒtj|jj|jƒ|jrpt d|jgdtj dtj ƒƒndS(Ns/usr/sbin/restoreconR»s /dev/null( RÿtflushR4tfsyncRtrenameR¤R>RüRR5R(R”((s!/usr/share/authconfig/authinfo.pytsaveJs   cCs)y|jjƒWntk r$nXdS(N(RÿR<R;(R”((s!/usr/share/authconfig/authinfo.pyR<Rs cCs|jj|ƒS(N(RÿR¼(R”R ((s!/usr/share/authconfig/authinfo.pyR¼YscCs$|jjdƒ|jjdƒdS(Ni(Rÿtseekttruncate(R”((s!/usr/share/authconfig/authinfo.pytrewind\s(RžRŸRòR R<R¼R (((s!/usr/share/authconfig/authinfo.pyRø=s    t FileBackupcBs,eZd„Zd„Zd„Zd„ZRS(cCs||_||_dS(N(t backupNametorigPath(R”t backupnametorigpath((s!/usr/share/authconfig/authinfo.pyRòas cCs©t}d}d}yt|tjdƒ}Wntk r?tSXytjtj|ƒj ƒ}Wn%tt fk r†tj |ƒtSXyt ||ƒ}|j ƒWntk r½t}nXyLxE|rtj|dƒ}|sìt}Pntj|jjƒ|ƒqÄWWntt fk r)t}nXy|rCtj |ƒnWntt fk r]nXy'|r„|r„|jƒ|j ƒnWntt fk r¤t}nX|S(Nii(R%RRDR4R6R=R¡tS_IMODEtfstatRÛR;R<RøR RR½R¼RÿRR (R”tsrctdestR›tsrcfdtdestfileR?R'((s!/usr/share/authconfig/authinfo.pytsafeCopyesL     !    cCst}y&tjj|ƒs+tj|ƒnWnttfk rKt}nX|d|j}|r{|j |j |ƒ}n|S(NRØ( R%R4R£tisdirtmkdirR;R=RRRR(R”tdestdirR›t backuppath((s!/usr/share/authconfig/authinfo.pytbackup�s   cCsÔt}ytjj|ƒstSWnttfk r?t}nX|d|j}|r�tjj|ƒr�|j ||j ƒ}ny5|rµt d|j gdtj dtj ƒƒnWnttfk rÏnX|S(NRØs/usr/sbin/restoreconR»s /dev/null(R%R4R£RRR=R;RtisfileRRRR5R(R”t backupdirR›R((s!/usr/share/authconfig/authinfo.pytrestorežs  (RžRŸRòRRR (((s!/usr/share/authconfig/authinfo.pyR `s  * cCs tjdƒS(Ntnscd(R¢Rœ(((s!/usr/share/authconfig/authinfo.pyt readCache³scCsL|rtjdƒn2ytjtƒtjdƒWntk rGnXtS(NR!(R¢R—R4R¡t PATH_NSCDR˜R;R%(R§((s!/usr/share/authconfig/authinfo.pyt writeCache¶s  t CacheBackupcBseZd„Zd„ZRS(cCst}y&tjj|ƒs+tj|ƒnWnttfk rKt}nX|d|j}|rÎd}y5t ƒ}t |dƒ}|j t t|ƒƒƒWntk r·t}nX|rÎ|jƒqÎn|süytj|ƒWqütk røqüXn|S(NRØtw(R%R4R£RRR;R=RRRR"R5R¼tstrtintR<tunlink(R”RR›RRR§((s!/usr/share/authconfig/authinfo.pyRÂs.     cCsÛt}ytjj|ƒstSWnttfk r?t}nX|d|j}|r×tjj|ƒr×d}y/t |dƒ}t |j ƒƒ}t |ƒWn tttfk rÀt}nX|r×|jƒq×n|S(NRØtr(R%R4R£RRR=R;RRRR5R(R½R$t ValueErrorR<(R”RR›RRR§((s!/usr/share/authconfig/authinfo.pyR Þs$  (RžRŸRR (((s!/usr/share/authconfig/authinfo.pyR%Ás is hesiod.confs /hesiod.confsyp.confs/yp.confs ldap.confs /ldap.confs nss_ldap.confs/nss_ldap.confs pam_ldap.confs/pam_ldap.confs nslcd.confs /nslcd.confs openldap.confs/openldap/ldap.confs krb5.confs /krb5.confskrb.confs /krb.confspam_pkcs11.confs/pam_pkcs11/pam_pkcs11.confssmb.confs/samba/smb.confs nsswitch.confs/nsswitch.confscacheenabled.confRIs/pam.d/t authconfigs/sysconfig/authconfigtnetworks/sysconfig/networks libuser.confs /libuser.confspwquality.confs/security/pwquality.confs login.defss /login.defss sssd.conftshadows/shadowtpasswds/passwdtgshadows/gshadowtgroups/groups 10-authconfigs /dconf/db/distro.d/10-authconfigs10-authconfig-lockss,/dconf/db/distro.d/locks/10-authconfig-lockst ldapServertldap_urit ldapBaseDNtldap_search_baset enableLDAPStldap_id_use_start_tlst ldapSchemat ldap_schemat ldapCacertDirtldap_tls_cacertdirt kerberosKDCt krb5_servertkerberosAdminServert krb5_kpasswdt kerberosRealmt krb5_realmtenableCacheCredstcache_credentialstkrb5_store_password_if_offlineRécBsäeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zed„Zd„Z d„Z!d„Z"d „Z#d!„Z$d"„Z%d#„Z&d$„Z'd%„Z(d&„Z)d'„Z*d(„Z+d)„Z,d*„Z-d+„Z.d,„Z/d-„Z0d.„Z1d/„Z2d0„Z3d1„Z4d2„Z5d3„Z6d4„Z7d5„Z8d6„Z9d7„Z:d8„Z;d9„Z<d:„Z=d;„Z>d<„Z?d=„Z@d>„ZAd?„ZBd@„ZCdA„ZDdB„ZEdC„ZFdD„ZGdE„ZHdF„ZIdG„ZJdH„ZKdI„ZLdJ„ZMdK„ZNdL„ZOdM„ZPdN„ZQdO„ZRdP„ZSRS(Qc8Csâ||_d|_g|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_t|_ t|_!d|_"d|_#d|_$d|_%d|_&d|_'d|_(d|_)d|_*d|_+d|_,d|_-d|_.d|_/d|_0d|_1d|_2d|_3d|_4d|_5d|_6d|_7d|_8d|_9d|_:d|_;t<|_=d|_>d|_?d|_@d|_Ad|_Bd|_Cd|_Dd|_Ed|_Fd|_Gd|_Hd|_Id|_Jd|_Kd|_Ld|_Md|_Nd|_Od|_Pd|_Qd|_Rd|_Sd|_Tt|_Ut|_Vd|_Wd|_Xd|_Yd|_Zd|_[d|_\d|_]d|_^d|__d|_`d|_ad|_bd|_cd|_dd|_ed|_fd|_gd|_hd|_id|_jd|_kd|_lt<|_md|_nd|_od|_pt|_qtrr$y trjrƒ|_n|jnjsƒWq$ttk r q$Xntuƒ|_vtw|jx|jydmdngƒtw|jzddodpgƒtw|j{|j|dqdrdsgƒtw|j}ddtdudvdwdxdygƒtw|j~ddzgƒtw|jdd{gƒtw|j€dd|d}d~dd€d�d‚dƒgƒtw|j�dd„d…d†d‡dˆd‰dŠd‹gƒtw|j‚|jƒdŒd�dŽd�d�d‘d’d“d”d•d–d—d˜d™dšgƒtw|j„dd›dœgƒtw|j…dd�dždŸd d¡gƒtw|j†|j‡d¢d£d¤d¥d¦d§d¨d©dªd«d¬g ƒtw|jˆdd­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂgƒtw|j‰ddÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßdàdádâdãdädådædçdèdég'ƒtw|jŠddêdëdìdídîdïdðdñdòdódôdõdöd÷dødùdúdûdüdýdþdÿdddddddddd d g!ƒtw|j‹dd gƒtw|jŒdd gƒtwd|j|d gƒtwd|j�dgƒtwd|jŽdddddgƒtwd|jƒddddddgƒtwd|j‡ddgƒg|_�dS(NRIt9t1t0sdeny=4 unlock_time=1200s umask=0077t enableCacheR't implicitSSSDt hesiodLHSRÎt hesiodRHSt nisDomainRÕtnisLocalDomaint nisServerR2R4R6R8R:tpasswordAlgorithmt passMinLent passMinClasst passMaxRepeattpassMaxClassRepeatt passReqLowert passReqUppert passReqDigitt passReqOtherR@R<t smbSecuritytsmbRealmt smbServersR>tkerberosRealmviaDNStkerberosKDCviaDNSRBtenableSmartcardtforceSSSDUpdatet enableLDAPtenableKerberostenableLDAPAutht enableIPAv2tsmartcardActiontsmartcardModulet enableFprintdtforceSmartcardt smbWorkgroupt smbIdmapRangetwinbindSeparatortwinbindTemplateHomedirtwinbindTemplateShelltwinbindUseDefaultDomaintwinbindOfflinet winbindKrb5tenableDBtenableDirectoriest enableWinbindtenableOdbcbindt enableNIS3t enableNIStenableLDAPbindtenableHesiodbindt enableHesiodt enableDBIbindt enableDBbindt enableCompatt enableWINSt enableMDNStenableMyhostnamet enableSSSDtpreferDNSinHostst pwqualityArgst passwdqcArgst faillockArgstenableFaillockt localuserArgst pamAccessArgstenablePAMAccesst mkhomedirArgstenableMkHomeDirt algoRoundst enableShadowt enableNullOktforceBrokenShadowtenableWinbindAutht enableAFStenableAFSKerberostenablePWQualityt enableEPStenableEcryptfst enableOTPtenablePasswdQCtenableLocAuthorizetenableSysNetAuthtenableSSSDAutht pamLinkedtimplicitSSSDAutht systemdArgstuidMintenableForceLegacyt ipav2Servert ipav2Domaint ipav2RealmtipaDomainJoinedt ipav2NoNTP(s enableCacheR'(s implicitSSSDR'(s hesiodLHSRÎ(s hesiodRHSRÎ(s nisDomainRÕ(snisLocalDomainRÕ(s nisServerRÕ(s ldapServerRÎ(s ldapBaseDNRÕ(s enableLDAPSR'(s ldapSchemaRÕ(s ldapCacertDirRÕ(spasswordAlgorithmRÎ(spasswordAlgorithmRÎ(spasswordAlgorithmRÎ(s passMinLenRÕ(s passMinClassRÕ(s passMaxRepeatRÕ(spassMaxClassRepeatRÕ(s passReqLowerR'(s passReqUpperR'(s passReqDigitR'(s passReqOtherR'(s kerberosRealmRÕ(s kerberosKDCRÎ(s smbSecurityRÎ(ssmbRealmRÕ(s smbServersRÎ(skerberosAdminServerRÎ(skerberosRealmviaDNSR'(skerberosKDCviaDNSR'(s ldapServerRÎ(s ldapBaseDNRÕ(s enableLDAPSR'(s ldapSchemaRÕ(s ldapCacertDirRÕ(senableCacheCredsR'(senableSmartcardR'(s kerberosRealmRÕ(s kerberosKDCRÎ(skerberosAdminServerRÎ(sforceSSSDUpdateR'(s enableLDAPR'(senableKerberosR'(senableLDAPAuthR'(s enableIPAv2R'(ssmartcardActionRÎ(ssmartcardModuleRÕ(ssmartcardActionRÎ(ssmartcardModuleRÕ(s enableFprintdR'(senableSmartcardR'(sforceSmartcardR'(s smbWorkgroupRÎ(s smbServersRÎ(ssmbRealmRÕ(s smbSecurityRÎ(s smbIdmapRangeRÎ(swinbindSeparatorRÕ(swinbindTemplateHomedirRÕ(swinbindTemplateShellRÕ(swinbindUseDefaultDomainR'(swinbindOfflineR'(s winbindKrb5R'(senableDBR'(senableDirectoriesR'(s enableWinbindR'(senableOdbcbindR'(s enableNIS3R'(s enableNISR'(senableLDAPbindR'(s enableLDAPR'(senableHesiodbindR'(s enableHesiodR'(s enableDBIbindR'(s enableDBbindR'(s enableCompatR'(s enableWINSR'(s enableMDNSR'(senableMyhostnameR'(s enableNIS3R'(s enableNISR'(s enableIPAv2R'(s enableSSSDR'(spreferDNSinHostsR'(s implicitSSSDR'(s pwqualityArgsRÕ(s passwdqcArgsRÕ(s faillockArgsRÕ(senableFaillockR'(s localuserArgsRÕ(s pamAccessArgsRÕ(senablePAMAccessR'(s mkhomedirArgsRÕ(senableMkHomeDirR'(s algoRoundsRÕ(spasswordAlgorithmRÎ(s enableShadowR'(s enableNISR'(s enableNullOkR'(sforceBrokenShadowR'(senableLDAPAuthR'(senableKerberosR'(senableSmartcardR'(sforceSmartcardR'(senableWinbindAuthR'(senableMkHomeDirR'(s enableAFSR'(senableAFSKerberosR'(senablePWQualityR'(s enableEPSR'(senableEcryptfsR'(s enableOTPR'(senablePasswdQCR'(senableLocAuthorizeR'(senableSysNetAuthR'(swinbindOfflineR'(s winbindKrb5R'(senableSSSDAuthR'(s enableFprintdR'(s pamLinkedR'(simplicitSSSDAuthR'(s systemdArgsRÕ(suidMinRÎ(s enableIPAv2R'(spasswordAlgorithmRÎ(s enableShadowR'(s enableNISR'(s enableLDAPR'(senableLDAPAuthR'(senableKerberosR'(senableEcryptfsR'(senableSmartcardR'(sforceSmartcardR'(senableWinbindAuthR'(s enableWinbindR'(s winbindKrb5R'(senableDBR'(s enableHesiodR'(senablePWQualityR'(senablePasswdQCR'(senableFaillockR'(s faillockArgsRÕ(senableLocAuthorizeR'(senablePAMAccessR'(senableCacheCredsR'(senableMkHomeDirR'(senableSysNetAuthR'(s enableFprintdR'(s enableSSSDR'(senableSSSDAuthR'(senableForceLegacyR'(s ipav2ServerRÎ(s ipav2DomainRÎ(s ipav2RealmRÕ(s enableIPAv2R'(sipaDomainJoinedR'(s ipav2NoNTPR'(s nisDomainRÕ(s enableShadowR'(s enableNISR'(senableMkHomeDirR'(s enableLDAPR'(senableLDAPAuthR'(s implicitSSSDR'(simplicitSSSDAuthR'(senableForceLegacyR'(s implicitSSSDR'(simplicitSSSDAuthR'(s enableIPAv2R'(s enableSSSDR'(senableSSSDAuthR'(senableForceLegacyR'(s enableWinbindR'(senableWinbindAuthR'(�t messageCBt backupDirRóRJRKR2R4RR@R[R<R\R>RNRLRMRgRYRZRXRhRiRjRkRlRmRnR�RžRŸR¡RR t ipaUninstallRdRcRHRzRoRpRwR_R6RtRsRyRxRvRuRrRqR{R|R}RR~RbtenableAltfilesRŽR�R%R‹R�R’R‘R`RaROR‰R›R“R”RŠR�R•R†R–RˆR]R—t brokenShadowRŒRfReRœRIR™RBRPRQRRRSRTRURVRWRƒR‚tjoinUsert joinPasswordR€R�R„R…R‡RšR:t ldapCacertURLR8R˜t sssdConfigt sssdDomainR^tsssdConfigPresentt SSSDConfigt new_configR=tsetttoggleFunctionsRìR$ttoggleCachingServicet writeHesiodtwriteNISttoggleNisServicet writeLDAPt writeLibusertwriteLogindefstwritePWQualityt writeKerberost writeSSSDttoggleSSSDServicetwriteSmartcardt writeDConft writeWinbindttoggleWinbindServicetwriteNSStwritePAMtwriteSysconfigt writeNetworkt toggleShadowttoggleOddjobServicettoggleLDAPServicet save_groups(R”Rê((s!/usr/share/authconfig/authinfo.pyRò&sr                                                                                                                                                cCsZt||ƒ}||krVt|||ƒ|t||ƒkrV|jj|ƒqVndS(N(RôtsetattrRótappend(R”tattrR#treftoldval((s!/usr/share/authconfig/authinfo.pytsetParamüs  cCs>yt|ƒ}Wntk r$dSX|j|t|ƒ|ƒS(N(R(R+RÍR'(R”RÊR#RË((s!/usr/share/authconfig/authinfo.pyt setIntParams  cCsWyt|ƒ}Wntk r$dSX|dkrD|j|t|ƒS|j|t|ƒS(Ni(R(R+RÍR%R(R”RÊR#RË((s!/usr/share/authconfig/authinfo.pytsetClassReqParam s  cCs÷|js|j rtSd }d}d}d}d }x>|D]6}t|d |ƒr<||kretS|d 7}q<q<W|d kr†tSd }x>|D]6}t|d |ƒr“||kr¼tS|d 7}q“q“W|d krÝtS|jró|jrótStS(NtNIStLDAPtWinbindtHesiodtIPAv2tKerberostLDAPAutht WinbindAutht SmartcardiR—i(RÐRÑRÒRÓRÔ(RÕRÖR×RØ(RÕRÖ(RœRªRRôR`R[R%(R”tnssalltpamallt idsupportedt authsupportedtnumtt((s!/usr/share/authconfig/authinfo.pyt sssdSupporteds2      cCs�ytjttjƒ}Wntk r.tSX|jdt|j dƒƒ|ƒ|jdt|j dƒƒ|ƒ|j ƒt S(NRJtlhsRKtrhs( tshvfileR½t all_configst CFG_HESIODRR=RRÍR tgetValueR<R%(R”RËtshv((s!/usr/share/authconfig/authinfo.pyt readHesiod2s "" cCsJytttjdƒ}Wntk r.tSXd}xñ|D]é}|jƒ}t|dƒ}|r�|jr�t ||ƒ}q<nt|dƒ}|r<|j ddƒ}t |ƒdkrÀq<n|d|jkrÙq<nt |ƒdkrñq<n|d}t|dƒ}|r%t ||ƒ}q%q<q<W|j d ||ƒ|jƒtS( NR*RItypserverR�iiitserverRN(R5RãtCFG_YPRR=RtstripRRMR$R RRRÍR<R%(R”RËtft nisserverRR#((s!/usr/share/authconfig/authinfo.pytreadNISCs6     cCssd|kr|jdƒ}n |jƒ}xB|D]:}ytj|ƒj}Wq1ttjfk rjtSXq1WtS(s& Check whether LDAP URI is valid. R(R turlparsetportR+tsocketR¹RR%(R”R turisturitp((s!/usr/share/authconfig/authinfo.pytvalidateLDAPURIms    cCs¸d|kr|jdƒ}n |jƒ}d}xU|D]M}|r7|rV|d7}nd|kro||7}q„|d|d7}q7q7W|r´|j|ƒ r´|jtdƒƒn|S(NRRIs://sldap://RØsInvalid LDAP URI.(R RõR¢Rç(R”R tvalidatetltrettitem((s!/usr/share/authconfig/authinfo.pytldapHostsToURIs|s      cCst|_ytttjdƒ}Wnœtk rÁytttjdƒ}WqÂtk r½ytttjdƒ}Wq¾tk r¹yttt jdƒ}Wqºtk rµt SXq¾XqÂXnXx|D] }|j ƒ}t |dƒ}|rt |ƒr|jd||ƒqÉnt |dƒ}|rC|jd||ƒqÉnt |dƒ}|rq|jd||ƒqÉnt |dƒ}|r¨|jdt|d ƒ|ƒqÉnt |d ƒ}|rÉ|jd ||ƒqÉqÉqÉW|jt|jƒt ƒ|_|jƒtS( NR*RR4thostR2RótsslR6t start_tlst nss_schemaR8(tPATH_LDAP_CACERTSR:R5Rãt CFG_NSSLDAPRR=t CFG_NSLCDt CFG_PAMLDAPtCFG_LDAPRRëRR*RÍR RúRR2R<R%(R”RËRìRR#((s!/usr/share/authconfig/authinfo.pytreadLDAP�sN         cCs(y|j|SWntk r#dSXdS(NRI(tallKerberosKDCstKeyError(R”RQ((s!/usr/share/authconfig/authinfo.pytgetKerberosKDCÈs cCs(y|j|SWntk r#dSXdS(NRI(tallKerberosAdminServersR(R”RQ((s!/usr/share/authconfig/authinfo.pytgetKerberosAdminServerÎs cCsíd}i|_i|_t}ytttjdƒ}Wntk rLtSXx |D]}|jdƒd}|j ƒ}|dd!dkr¥|dd!}d}qTn|dkrbt |d ƒ}|rå|j d ||ƒt }qTnt |d ƒ}|r"|j d t |d ƒdk|ƒqTnt |dƒ}|rY|j dt |d ƒdk|ƒqTqYqT|dkrT|s«|jddƒ}t|ƒdkržqTn|d}qY|dd!dkrÊd}qTn|jså||_t }nt |dƒ}|rt|j|ƒ|ƒ|j|(RRRR5RãtCFG_KRB5RR=R RëRRÍR%RRRR@R$RR R<RóRÉ(R”RËtsectiont realm_foundRìRt subsectionR#((s!/usr/share/authconfig/authinfo.pyt readKerberosÔsr       ""      )  % cCsÏd}ytttjdƒ}Wntk r4tSXx‰|D]�}|jƒ}|dd!dkrz|dd!}d}q<n|dkr<t|dƒ}|r½|jd |j ƒ|ƒq<q½q<q<W|j ƒt S( NRIR*iiR iÿÿÿÿtdefaultst crypt_styleRO( R5Rãt CFG_LIBUSERRR=RRëRRÍR!R<R%(R”RËRRìRRR#((s!/usr/share/authconfig/authinfo.pyt readLibusers$       cCshytttjdƒ}Wntk r.tSXx(|D] }tj|ƒ}|dk r6|j dƒ}|j dƒr{q6n|j dƒ}|dkr¨|j dƒ}n|dkrÃd}qÃnq6|dkrô|dkrô|j d d |ƒq6n|d kr4|d krd }n|j d |j ƒ|ƒq6n|dkr6|j d||ƒq6q6W|j ƒtS(NR*iR iiRItMD5_CRYPT_ENABtyesRORktENCRYPT_METHODtDESRitUID_MINR›(R5RãtCFG_LOGIN_DEFSRR=Rt ld_line_retmatchRR1RRÍR!R<R%(R”RËRìRR$R¤R#((s!/usr/share/authconfig/authinfo.pyt readLogindefs:s8           cCsãd}ytttjdƒ}Wntk r4tSXx�|D]•}|jdƒd}|jƒ}t|dƒ}|r�|j d||ƒq<nt|dƒ}|r½|j d||ƒq<nt|d ƒ}|rë|j d ||ƒq<nt|d ƒ}|r|j d ||ƒq<nt|d ƒ}|rG|j d||ƒq<nt|dƒ}|ru|j d||ƒq<nt|dƒ}|r£|j d||ƒq<nt|dƒ}|r<|j d||ƒq<q<q<W|j ƒt S(NRIR*R itminlenRPtminclassRQt maxrepeatRRtmaxclassrepeatRStlcreditRTtucreditRUtdcreditRVtocreditRW( R5Rãt CFG_PWQUALITYRR=RR RëRRÎRÏR<R%(R”RËRRìRR#((s!/usr/share/authconfig/authinfo.pyt readPWQuality\sT     c Cs%|js tStjƒ|_y$|jjttjƒt|_Wn6ttj fk rxtjƒ|_|jj ƒnXy|jj t ƒ}|_ WnÝtjk ruy|jjƒd}Wn=tk rÿy|jjƒd}Wqtk rûtSXnX|jj |ƒ}y|jdƒ}Wntjk rAd}nXy|jdƒ}Wqvtjk rqd}qvXnXx¨tD] \}}y}|j|ƒ}|dkrÂdj|jdƒƒ}n0|dkrà|dkràw}n|d kròw}n|j|||ƒWq}tjk rq}Xq}WdS( Nit id_providert auth_providerR3R RR9trfc2307RD(RªR%R­t import_configRãtCFG_SSSDRR¬R=t ParsingErrorR®t get_domaintSSSD_AUTHCONFIG_DOMAINR«t NoDomainErrortlist_active_domainst IndexErrort list_domainst get_optiont NoOptionErrorRt sssd_optionsRR RÍ( R”RËR�tdomnametidprovtauthprovRÊtoptR©((s!/usr/share/authconfig/authinfo.pytreadSSSD�sP        cCsÉt}tdgƒ}|dkr.d|_tS|jd|d|ƒtdgƒ}|dkrdtSx#|D]}d|krkt}qkqkW|r¬|jdtdƒ|ƒn|jdtd ƒ|ƒtS( Nt use_moduleRIRdit rm_actions lockhelper.shRcRåRæ(RRáRRdRÍR%Rç(R”RËtlocktsmartcardmodulet rmactionstaction((s!/usr/share/authconfig/authinfo.pyt readSmartcard·s       cCsûd}d}ytttjdƒ}Wntk r:|SXx¯|D]§}|jƒ}t|dƒriqBnt|dƒr~qBnt|dƒ}|r²|jdƒdj ƒ}qBn| sB|dkrËqBnt ||ƒ}|rB|}qBqBW|j ƒ|S( NRIR*R t;R t]itglobal( R5RãtCFG_SMBRR=RëR RR R!RVR<(R”RtresultRRìRR#tres((s!/usr/share/authconfig/authinfo.pytreadWinbindGlobalËs.     cCsT|j|ƒ}|rP|jƒdksE|jƒdksE|dkrItStSndS(NRRRF(RQR!R%RR(R”Rttmp((s!/usr/share/authconfig/authinfo.pytreadWinbindGlobalBoolës 0cCsý|jdƒ}|r+|jd||ƒn|jdƒ}|rV|jd||ƒn|jdƒ}|r�|jd||ƒn|jdƒ}|r¬|jd||ƒn|jsÁd |_n|jd ƒ}|rì|jd ||ƒn|jsd |_n|jd ƒ}|r,|jd||ƒn|jdƒ}|rW|jd||ƒn|jdƒ}|r‚|jd||ƒn|js—d|_n|jdƒ}|dkrÈ|jd||ƒn|jdƒ}|dkrù|jd||ƒntS(Nt workgroupRgspassword serverRZRQRYtsecurityRXtusersidmap config * : rangeRhs16777216-33554431swinbind separatorRistemplate homedirRjstemplate shellRks /bin/falseswinbind use default domainRlswinbind offline logonRm(RQRÍRXRhRkRSRR%(R”RËRR((s!/usr/share/authconfig/authinfo.pyt readWinbindõsJ        c Cs]d}d}ytttjdƒ}Wntk r:tSXxM|D]E}|jƒ}t|dƒ}|rr|}qBt|dƒ}|rit|dƒr¬|j dt |ƒnt|dƒrÑ|j dt |ƒnt|d ƒrö|j d t |ƒnt|d ƒ}|dkr#t|dƒ}nt|d ƒ}|dkr‡|dkr‡|j d ||k|ƒq‡qBt|dƒ}|rB|}qBqBW|rOd#d$d%d&d'd(d)d*d+f } x=| D]5\} } t|| ƒr¹|j d | t |ƒq¹q¹W|r*t|d!ƒr*t|d!ƒ r*|j j d"ƒn|j d"tt|d!ƒƒ|ƒn|jƒt S(,NRIR*spasswd:shosts:twinsR{smdns4_minimal [NOTFOUND=return]R|t myhostnameR}tnistdnsRs initgroups:tCompattcompattDBtdbt Directoriest directoriesRÓthesiodRÑR€RÐtAltfilestaltfilestNIS3tnisplusRÒR‚R—R}RI(R\R](R^R_(R`Ra(sHesiodshesiod(sLDAPR€(sNISRZ(RcRd(ReRf(sWinbindR‚(R5Rãt CFG_NSSWITCHRR=RRëRR3RÍR%RRóRÉtboolR<( R”RËt nssconfigt initgroupsRìRR#tnispostdnspostnssmapRÊtnssentry((s!/usr/share/authconfig/authinfo.pytreadNSS sR        %% cCs|jdtƒ|ƒtS(NRH(RÍR"R%(R”RË((s!/usr/share/authconfig/authinfo.pyR"WscCsôytttjdƒ}WnAtk r]yttdtdƒ}Wq^tk rYtSXnX|j||ƒ|j ƒyttt jdƒ}WnAtk rÕyttdt dƒ}WqÖtk rÑt SXnX|j||ƒ|j ƒt S(NR*s/pam.d/( R5RãtCFG_PAMRR=t SYSCONFDIRtAUTH_PAM_SERVICERt readPAMFileR<tCFG_POSTLOGIN_PAMtPOSTLOGIN_PAM_SERVICER%(R”RËRì((s!/usr/share/authconfig/authinfo.pytreadPAM\s&        c Cs"d}x||D]t}|jddƒ}t|ƒdkrD|d}n|jƒ}|ddkrx||d d7}q n||}d}|jƒ}d}|jddƒ}t|ƒdkrÄq n|\}}|d kr|d kr|d kr|d krq n|jd ƒr*|jddƒ}n|jddƒ}t|ƒdkrTq n|ddkrjq n|d}|jd ƒr�|d7}n|d}|jddƒ}t|ƒdkrÄq n|djdƒd\} t|ƒdkrý|d}n| jdƒs| jdƒrP|jdt|ƒ|r |jd||ƒq q n| jdƒrx|jdt|ƒq n| jdƒr |jdt|ƒq n| jdƒrÈ|jdt|ƒq n| jdƒr%|jdt|ƒd|kr |jdt|ƒq |jdt|ƒq n| jdƒrM|jd t|ƒq n| jd!ƒr‘|jd"t|ƒ|r |jd#||ƒq q n| jd$ƒrÛ|jd%t|ƒ|jd&|j d'ƒdk|ƒq n| jd(ƒr|jd)t|ƒq n| jd*ƒrG|jd+t|ƒ|r |jd,||ƒq q n| jd-ƒse| jd.ƒr�|jd/t|ƒ|r ||_ q q n| jd0ƒrÔ|jd1t|ƒ|r |jd2||ƒq q n| jd3ƒr|r |jd4||ƒq q n|d kr| jd5ƒrx9t D]1} |j | ƒdkr'|jd6| |ƒq'q'WyP|j d7ƒ} || d8jddƒ} |jd9t t| dƒƒ|ƒWnttfk rÅnXy$tjd:ƒ|jd;t|ƒWqtk r|jd;t|ƒqXqn|d krÂ| jd5ƒrW|jd<|j d=ƒdk|ƒn| jd>ƒrÂ|jd?t|ƒ|r d@|kr |jd@dƒjƒ}|jdA||ƒq q qÂn|d kr| jd5ƒr|jdB|j dCƒdk|ƒqn|d ks|d kr | jdDƒr�tj|ƒ} | dkr~| jdƒdkr~|jdE| jdƒ|ƒq~q�q q W|jr­|jr­|jd"t|ƒn|j r×|j r×|jdt|ƒn|jr|j r|j r|j r|j r|j rt|_!ndS(FNRIR iiiÿÿÿÿs\R iRnRoRqRpR RLtincludeRØt pam_cracklibt pam_pwqualityR�R€t pam_ecryptfsR’tpam_krb5R`tpam_ldapRat pam_pkcs11R]tauthinfo_unavailRft pam_fprintdRet pam_passwdqcR”R�t pam_winbindR�Rnt krb5_authtpam_sssR™t pam_accessR†R…t pam_mkhomedirtpam_oddjob_mkhomedirRˆt pam_localuserR•R„t pam_systemdRštpam_unixROsrounds=iR‰s /etc/shadowRŠR‹tnullokt pam_faillockRƒRƒR‚R¦t broken_shadowtpam_succeed_ifR›("R RR RRRRÍR%RR-R‡tpassword_algorithmsRÖR'R(R+R:R4R¡R;RRët succ_if_reR$R1R�R”R¦RaR`R�R—R]RŒ(R”RËRìtprevlineRRtargststacktcontroltmoduletalgotridxtroundsR$((s!/usr/share/authconfig/authinfo.pyRsws           "   '   %  (!)cCsSy;tjttjƒ}y|jdƒ|_Wntk rBnXy|jdƒ|_Wntk rlnXy|jdƒ|_ Wntk r–nXy|jdƒ|_ Wntk rÀnXy|jdƒ|_ Wntk rênXy|jdƒ|_ Wntk rnXy|jdƒ|_ Wntk r>nXy(|jdƒ|_|jd ƒ|_Wntk rznXy|jd ƒ|_Wntk r¤nXy|jd ƒ|_Wntk rÎnXy|jd ƒ|_Wntk rønXy|jd ƒ|_Wntk r"nXy|jdƒ|_Wntk rLnXy|jdƒ|_Wntk rvnXy|jdƒ|_Wntk r nXy|jdƒ|_Wntk rÊnXy|jdƒ|_Wntk rônXy|jdƒ|_Wntk rnXy|jdƒ|_Wntk rHnXy.|jdƒ}|rmd|_n d|_Wntk rŠnXy|jdƒ|_Wntk r´nXy|jdƒ|_Wntk rÞnXy|jdƒ|_Wntk rnXy|jdƒ|_ Wntk r2nXy|jdƒ|_!Wntk r\nXy|jdƒ|_"Wntk r†nXy|jdƒ|_#Wntk r°nXy|jdƒ|_$Wntk rÚnXy|jd ƒ|_%Wntk rnXy|jd!ƒ|_&Wntk r.nXy|jd"ƒ|_'Wntk rXnXy|jd#ƒ|_(Wntk r‚nXy|jd$ƒ|_)Wntk r¬nXy|jd%ƒ|_*Wntk rÖnXy|jd&ƒ|_+Wntk rnXy|jd'ƒ|_,Wntk r*nXy|jd(ƒ|_-Wntk rTnXy|jd)ƒ|_.Wntk r~nXy|jd*ƒ|_/Wntk r¨nXy|jd+ƒ|_0Wntk rÒnX|jd,ƒ|_1|jd-ƒ|_2|jd.ƒ|_3|jd/ƒ}|t4kr0||_n|j5ƒWnt6k rNnXt7S(0NtUSEAFStUSEAFSKERBEROStUSEDBt USEPWQUALITYt USEDBBINDt USEDBIBINDtUSEDIRECTORIESt USEFAILLOCKt FAILLOCKARGSt USEECRYPTFStUSEEPSt USEHESIODt USEHESIODBINDt USEKERBEROStUSELDAPt USELDAPAUTHt USESMARTCARDt USEFPRINTDtFORCESMARTCARDt USELDAPBINDtUSEMD5RkRitUSENISt USENISPLUSt USEODBCBINDtUSEOTPt USEPASSWDQCt USESHADOWt USEWINBINDtUSEWINBINDAUTHt WINBINDKRB5tUSESSSDt USESSSDAUTHtUSELOCAUTHORIZEt USEPAMACCESSt USEMKHOMEDIRt USESYSNETAUTHt FORCELEGACYtCACHECREDENTIALStUSEIPAV2tIPADOMAINJOINEDt IPAV2NONTPt IPAV2SERVERt IPAV2DOMAINt IPAV2REALMtPASSWDALGORITHM(8RâR½RãtCFG_AUTHCONFIGRt getBoolValueRŽR+R�RoR�RyRxRpRƒRåR‚R’R‘RwRvR`R_RaR]ReRfRuRORtt enableNISP3RrR“R”RŠRqR�RnR~R—R•R†RˆR–RœRBRbR R¡R�RžRŸRŽR<R=R%(R”Ræt enableMD5R•((s!/usr/share/authconfig/authinfo.pyt readSysconfig s`                                             cCs€ytjttjƒ}Wntk r.tSX|jdƒ}|rP||_n|j ƒ|jr||j d|j|ƒnt S(Nt NISDOMAINRL( RâR½Rãt CFG_NETWORKRR=RRåRMR<RÍR%(R”RËRæRR((s!/usr/share/authconfig/authinfo.pyt readNetworkË s    cCsh|jƒ}t|jƒ|ks6t|jƒ|kr:tSx'|jD]}|j||ƒrDtSqDWtS(N(RßRhRIR™R%RÇR÷R(R”R't sssdsupportedR1((s!/usr/share/authconfig/authinfo.pytdiffersß s *cCsÜt|jƒ|_t|jƒ|_t|jƒ|_t|jƒ|_|j|j|ƒ|_|jdkr�|jr�|jj ƒ|_q�n|j j ƒ|_ |j dkr½t|_ n|jdkrØd|_ndS(NtadsRI(RRZR�R<R>RúR2RXRYtupperROR!RBRR%R@(R”Rö((s!/usr/share/authconfig/authinfo.pytupdateò s  cCs‘|jƒ}|jƒ|j|ƒ|j|ƒ|j|ƒ|jƒ}|jr‚| r‚|j r‚|jdt |ƒt |_n|j r»| r»|j r»|jdt |ƒt |_ n|j |ƒ|j |ƒ|j|ƒ|j|ƒ|j|ƒ|j|ƒ|j r-|j r-|j|ƒn|j|ƒ|j|ƒ|jsY|j ri|j|ƒn|j|ƒ|j|ƒ|jƒdS(NR~R—(tcopyRÉRoRRvRßRIRbRÍR%RR™R%R/RçRWRÌRîRCRRRJR"RÑ(R”RËtreallyimplicit((s!/usr/share/authconfig/authinfo.pyR½ s6                  cCs%tj|ƒ}d|_d|_|S(NRI(RÒR§R¨(R”Rø((s!/usr/share/authconfig/authinfo.pyRÒ& s  cCs/ttj|jƒt|jo'|j ƒtS(N(Rãt CFG_CACHERR£R$RHRIR%(R”((s!/usr/share/authconfig/authinfo.pyR$, scCs„ttj|jƒytjttjƒ}Wntk rBtSX|j d|j ƒ|j d|j ƒ|j dƒ|j ƒtS(NRàRái¤(RãRäRR£RâtrcreateRR=RtsetValueRJRKR¼R<R%(R”Ræ((s!/usr/share/authconfig/authinfo.pyR²1 s   c Csút}d}d}ttj|jƒz¡tttjdƒ}x¼|jD]±}|j ƒ}t |dƒ}|r}|j ddƒ}t |ƒdkršqIn|d|j krÐ|d|jkrÐ||7}qIn| rú|j rú|d|j 7}|jj dƒ}|jr'|d7}||d7}n |d 7}|d 7}|d}x)|D]!}|rL|d |d 7}qLqLWt}qúqIt|d ƒrð| rú|j rú|jrú|jj dƒ}x)|D]!}|r¿|d |d 7}q¿q¿Wt}qúqI||7}qIW|s¥|jj dƒ}|j rv|d|j 7}|dr_|d7}||d7}|d}n |d 7}|d 7}nx,|D]!}|r}|d |d 7}q}q}Wn|jƒ|j|ƒ|jƒWdy|rà|jƒnWntk rônXXtS( NRIi¤R�iisdomain Rs server s broadcasts s ypserver Rè(RRRãRêRR£RøRRÿRëRR RRLRMRNR%R R R¼R R<R=( R”twrittenRìRKRtlsR#tserversR ((s!/usr/share/authconfig/authinfo.pyR³@ sv &                    cCsƒt}t} t} t} t} t} d}d}|jr`|jdkr`|jdkr`d}nd}zêt|dƒ}xJ|jD]?}|jƒ}t||ƒrö| rÁ|jrÁ||d7}|dj|jj dƒƒ7}|d 7}t } qÁq‚t||ƒr"|jrÁ|d |7}qÁq‚t ||ƒrr| rÁ|j rÁ||d7}||j 7}|d 7}t }qÁq‚|rÍt|d ƒrÍ| sÁ|d 7}|j r­|d 7}n |d7}|d 7}t } qÁq‚|rt|dƒr| rÁ|jrÁ|d7}||j7}|d 7}t } qÁq‚t|dƒrx| sÁ|rG|d7}n |d7}|d|j7}|d 7}t } qÁq‚|r·t|dƒr·| sÁ|d|7}|d 7}t } qÁq‚||7}q‚W| r|jr||d7}|dj|jj dƒƒ7}|d 7}n| rG|j rG||d7}||j 7}|d 7}n|r‹| r‹|d 7}|j rt|d 7}n |d7}|d 7}n|rÅ| rÅ|jrÅ|d7}||j7}|d 7}n| s|rÞ|d7}n |d7}|d|j7}|d 7}n|r.| r.|d|7}|d 7}n|jƒ|j|ƒ|jƒWdy|ri|jƒnWntk r}nXXt S(NRIRiRjRktcrypti¤R Rs R Rüsssl RýtnoRþs nss_schema t tls_cacertdirt TLS_CACERTDIRt pam_passwords pam_password (RRRORøRÿRëR R2RR R%R+R4R6R8R"R:R R¼R R<R=(R”R>RóRûRt writepadlt writeschematwritepamt wrotebasednt wroteservertwrotesslt wroteschemat wrotepasstwrotecacertdirRìRKtpassalgoRRØ((s!/usr/share/authconfig/authinfo.pyt writeLDAP2• s¾                                            cCs˜tjjttjƒrVttj|jƒ|jttjdddt t t ƒntjjtt jƒr¬tt j|jƒ|jtt jdddt t t ƒntjjtt jƒrtt j|jƒ|jtt jdddt t t ƒntjjtt jƒrXtt j|jƒ|jtt jdddt t t ƒnttj|jƒ|jttjdddt t t ƒ}|S(NRóRûRtURItHOSTtBASE(R4R£RRãRRRR£RéR%RRRRt CFG_OPENLDAP(R”Rø((s!/usr/share/authconfig/authinfo.pyRµ s(cCsRd}|jdkr|dS|jdks;|jdkrF||jS|dSdS(Nscrypt_style = RkRlRmtdes(RO(R”Rø((s!/usr/share/authconfig/authinfo.pyt cryptStyle s  cCs©t}t}d}d}d}ttj|jƒzDtttjdƒ}xÓ|jD]È}|j ƒ}|dkr¢t |dƒr¢||j ƒd7}t }qUnt |dƒr|dkrá| rá||j ƒd7}t }n|dj ddƒd }|dkrt }qn||7}qUW|sT|d 7}||j ƒd7}t }t }n|jƒ|j|ƒ|jƒWdy|r�|jƒnWntk r£nXXt S( NRIi¤RRs R iRLis [defaults] (RRRãRRR£RøRRÿRëR RïR%R R R¼R R<R=(R”twrotecryptstylet wrotedefaultsRRìRKRRØ((s!/usr/share/authconfig/authinfo.pyR¶* sH         c Cst}t}d}d}d}ttj|jƒ|jdkrJd}nd}|jdksn|jdkrwd}nd|jjƒd }z^tttj d ƒ}xú|j D]ï}t j |ƒ} | dk rE| j d ƒ} | jd ƒr||7}q±n| j d ƒ} | dkr-| j dƒ} n| dkrRd} qRn ||7}q±| dkrt||7}t}q±n| dkr–||7}t}q±n||7}q±W|s·||7}n|sÊ||7}n|jƒ|j|ƒ|jƒWdy|r|jƒnWntk rnXXtS(NRIRksMD5_CRYPT_ENAB yes sMD5_CRYPT_ENAB no RiRjsENCRYPT_METHOD DES sENCRYPT_METHOD s i¤iR iiRR(RRRãR"RR£RORÐRøRRÿR#R$R1RR%R R¼R R<R=( R”t wrotemd5crypttwroteencmethodRRìRKtmd5cryptt encmethodRR$R¤R#((s!/usr/share/authconfig/authinfo.pyR·_ sd                 cCsâ|jdƒ}t|ƒdkr3|jdƒ}nt|ƒdkr½yat|dƒ}|dkrh|S|r†|dkr†|ddS| r¥|dkr¥|ddSWq½tk r¹q½Xn|rÌd}nd}|dd |S( NRiR is = -1s = 0s-1RGs = (R RR(RR+(R”RR#RØRÌ((s!/usr/share/authconfig/authinfo.pytformatClassReqParam¡ s$    c Csít}t}t}t}t}t}t}t}d} d} ttj|jƒzjtttjdƒ} x| jD]} | j dƒdj ƒ} t | dƒrË|ss| d|j d7} t }qsqsnt | dƒr|ss| d |jd7} t }qsqsnt | d ƒr=|ss| d |jd7} t }qsqsnt | d ƒrv|ss| d |jd7} t }qsqsnt | dƒr·|ss| |j| |jƒd7} t }qsqsnt | dƒrø|ss| |j| |jƒd7} t }qsqsnt | dƒr9|ss| |j| |jƒd7} t }qsqsnt | dƒrz|ss| |j| |jƒd7} t }qsqsn| | 7} qsW|s¦| d|j d7} n|sÄ| d |jd7} n|sâ| d |jd7} n|s| d |jd7} n|s&| |jd|jƒd7} n|sL| |jd|jƒd7} n|sr| |jd|jƒd7} n|s˜| |jd|jƒd7} n| jƒ| j| ƒ| jƒWdy| rÓ| jƒnWntk rçnXXt S(NRIi¤R iR&s minlen = s R's minclass = R(s maxrepeat = R)smaxclassrepeat = R*R+R,R-(RRRãR.RR£RøRRÿR RëR RPR%RQRRRSRöRTRURVRWR R¼R R<R=( R”t wroteminlent wroteminclasstwrotemaxrepeattwrotemaxclassrepeatt wrotereqlowert wroterequppert wrotereqdigitt wrotereqotherRìRKRRØ((s!/usr/share/authconfig/authinfo.pyR¸· s¢               c'Cs¬ t}t}t}t}t}t}t}t}t} t} t} t} t} t}t}tjttjƒ }d}d}d}d}ttj|j ƒ|j rº|j rº|j }n?|j sÌ|j rð|jdkrð|jrð|j}n |j }|j |jkrt}nze tttjdƒ}x,|jD]!}|jƒ}t|dtƒrq|s7t}qqq7n|dkrÕ|rÕ||j krÕt|dƒrÕ|s7|jrÆ|t|jƒ7}nt}q7q7n|dkrH|jdkrH|rH||jkrHt|dƒrH|s7|jr9|t|jƒ7}nt}q7q7n|dkr¬|r¬||j kr¬t|dƒr¬|s7|jr�|t|jƒ7}nt}q7q7n|dkrB| rB|jddƒ}t|ƒdkró||7}q7n|d }|j r||j krt}n|jrB||jkrBt}qBn|dkr|rt|d ƒr|j rÂ||j krÂ|s�|t|jƒ7}t}n|sÂ|t|jƒ7}t}qÂn|jrÿ||jkrÿ|sÿ|t|jƒ7}t}qÿnd}n|d kr]t|d ƒr]|r7| r7|d 7}||7}|d7}t} q7q7n|d krÀt|dƒrÀ| s7|d7}|tt|jƒƒj ƒ7}|d7}t} q7q7n|d kr#t|dƒr#| s7|d7}|tt|j!ƒƒj ƒ7}|d7}t} q7q7n|dkr‚|j r‚t||j j ƒƒslt|d|j j ƒƒr‚||7}t} q7nt|dƒrN|s²|dtd7}t}n|dkrö|j rö| rö|t"|j |j|jƒ7}t}n|dkr7|jr7| r7|t"|j|jdƒ7}t}n|d kr|rw| rw|d 7}||7}|d7}t} n|jdkrÉ| rÉ|d7}|tt|jƒƒj ƒ7}|d7}t} n|j!dkr| r|d7}|tt|j!ƒƒj ƒ7}|d7}t} qn|dkrª|j rª| rª|d|j j ƒ7}|d|j 7}|d7}|d|j j ƒ7}|d|j 7}|d7}t} qªn|rò|dkrÅt}qò|d krÚt} qò|dkròt}qòn|djddƒd }|dkr!t}qN|d kr6t}qN|dkrNt}qNn||7}q7W| s> |su|d7}n|r£| r£|d 7}||7}|d7}n|jdkrï| rï|d7}|tt|jƒƒj ƒ7}|d7}n|j!dkr> | r> |d7}|tt|j!ƒƒj ƒ7}|d7}q> n| rº |j sW |jrº |sj |d7}n|s’ |t"|j |j|jƒ7}n|sº |t"|j|jdƒ7}qº n| rW |j rW |sÝ |d7}n|j rW | rW |d|j j ƒ7}|d|j 7}|d7}|d|j j ƒ7}|d|j 7}|d7}qW n|j#ƒ|j$|ƒ|j%ƒWdy|r’ |j&ƒnWnt'k r¦ nXXtS(NRIRÏi¤s includedir RRLRiiRR R s default_realm = s Rs dns_lookup_realm = Rs dns_lookup_kdc = t domain_realmR�R R s = s .RLs[libdefaults] s [realms] s[domain_realm] ((RR4R…tPATH_KRB5_INCLUDEDIRtR_OKRRãRRR£R`R@RqR�RXRYR%RøRRÿRëR R<RMRZR>RPR RR'RhR[R!R\RRR R¼R R<R=(R”t wroterealmtwrotekdct wroteadmint wrotesmbrealmt wrotesmbkdct wroterealmstwrotelibdefaultst wroterealms2twrotelibdefaults2twrotedefaultrealmt wrotednsrealmt wrotednskdctwroteourdomrealmt wrotedomrealmtwrotedomrealm2t wroteincdirRRRìRKt defaultrealmRRØR#((s!/usr/share/authconfig/authinfo.pyR¹ s˜  !     !  !  !      !               -                                            "     cCssy|j|dƒ}Wntjk r3d}nX||kro|dkr\|j|ƒn|j||ƒndS(Nt _provider(R<R­R=Rtremove_providert add_provider(R”R�t newprovidertsubtypetprov((s!/usr/share/authconfig/authinfo.pytchangeProvider s   cCs |js tS|j r%|j r%tSy|jjdƒ}Wn&tjk rc|jjdƒ}nX|jr˜|j r˜|j dkr˜|j ddƒn(y|j dƒWntj k r¿nX|jj|ƒ|ry|jjttjƒWqtk rqXntS(Ntpamtsssdt pam_cert_authR%(RªR%R¬RIt get_serviceR­tNoServiceErrort new_serviceR]R—Rdt set_optiont remove_optionR=t save_serviceR¼RãR4RR=(R”t write_configR((s!/usr/share/authconfig/authinfo.pyt writeSSSDPAM s* ! cCsÐ|js tSttj|jƒ|jtƒ|jr;tS|j s™|j sQtSy|jj t ƒ|_ Wq™t jk r•|jjt ƒ|_ q™Xn|j }y|jjdƒWn$t jk rÜ|jjdƒnX|jjdƒt}|jr+t}|j|ddƒ|j|ddƒn|jr]|j|ddƒ|j|ddƒn2|jr�|j|ddƒ|j|ddƒnxÆtD]¾\}}y›t||ƒ}|dkrÏt|ƒ}nt|ƒtkrô|j||ƒnHt|ƒtkr/|r|j||ƒq<|j|ƒn |j|ƒWq–t j k rSq–Xq–W|jj!|ƒ|r‡|jj"|j#ƒƒn|jj$|j#ƒƒy|jj%ttj&ƒWnt'k rËnXtS(NtautofsR€tidRxRntchpassR3((RªR%RãR4RR£R$RRbR«RIt new_domainR7R­tDomainAlreadyExistsErrorR6RRRtactivate_serviceR_RR`RaR>RôRttypeRhR R'R!R=t save_domaintactivate_domaintget_nametdeactivate_domainR¼RR=(R”R�tactivateRÊtoptionR©((s!/usr/share/authconfig/authinfo.pyRº1 sj           cCs‘|jdkrtSttj|jƒd}d}d}|jtdƒkrk|d7}|d7}d}nt d|jd|d |gƒtS( Ns/usr/sbin/gdm-safe-restarttnoneRås ,/etc/pkcs11/lockhelper.sh -locks&,/etc/pkcs11/lockhelper.sh -deactivatet lock_screens use_module=s ins_action=s rm_action=( RdRR%RãtCFG_PAM_PKCS11RR£RcRçRá(R”tinsacttrmactRF((s!/usr/share/authconfig/authinfo.pyR¼w s    c Cs0d}d}d}ttj|jƒttj|jƒtjjttj ƒ}tjj |ƒs…|j r~tj |ƒq…t Sndtjdƒd}d}|j s¶|j rí||7}d}||7}d}|d7}|d7}n|j r6|jr6||7}d}||7}d}|d7}|d 7}n|j s[|j r’|jr’|jr’||7}d}||7}d}|d 7}|d 7}nd }|jtd ƒkrä||7}d}||7}d}|d7}|d7}nytjttj ƒWntk rnXytjttj ƒWntk r;nX|dkrz;tttj dƒ}|jƒ|j|ƒ|jƒWdy|rœ|jƒnWntk r°nXXz;tttj dƒ}|jƒ|j|ƒ|jƒWdy|r|jƒnWntk rnXXntjdƒt S(NRIs# Generated by authconfig on s%Y/%m/%d %H:%M:%Ss s [org/gnome/login-screen] s&enable-smartcard-authentication=false s7/org/gnome/login-screen/enable-smartcard-authentications%enable-password-authentication=false s7/org/gnome/login-screen/enable-password-authentication s(enable-fingerprint-authentication=false s:/org/gnome/login-screen/enable-fingerprint-authentication s3 [org/gnome/settings-daemon/peripherals/smartcard] Råsremoval-action='lock-screen' s1/org/gnome/settings-daemon/peripherals/smartcard i¤s dconf update(RRãt CFG_DCONFRR£tCFG_DCONF_LOCKSR4R£tdirnameRRR]tmakedirsR%ttimetstrftimeRdRfReRcRçR)R;RøR R¼R R<R=R“(R”RìRKtlockstlocksdirtheadert groupHeader((s!/usr/share/authconfig/authinfo.pyR½ˆ s�         %                  cCsod}|d7}|dtjdƒd7}|d7}|d7}|d7}|jrv|d7}||j7}|d7}n|jr¯|d7}||jjd d ƒ7}|d7}n|jrÜ|d 7}||j7}|d7}n|jr |d 7}||j7}|d7}n|jr6|d 7}||j7}|d7}n|jrc|d7}||j7}|d7}n|j r�|d7}||j 7}|d7}n|j r½|d7}||j 7}|d7}n|j rÝ|d7}|d7}n|d7}|d7}|d7}|t t |jƒƒjƒ7}|d7}|d7}|t t |jƒƒjƒ7}|d7}|d7}|d7}|S(Ns#--authconfig--start-line-- s s# Generated by authconfig on s%Y/%m/%d %H:%M:%SsF# DO NOT EDIT THIS SECTION (delimited by --start-line--/--end-line--) sE# Any modification may be deleted or altered by authconfig in future s workgroup = s password server = RR s realm = s security = s idmap config * : range = s winbind separator = s template homedir = s template shell = s' kerberos method = secrets and keytabs! kerberos method = secrets onlys winbind use default domain = s winbind offline logon = s#--authconfig--end-line-- (R;R<RgRZRRYRXRhRiRjRkRnR'RhRlR!Rm(R”RK((s!/usr/share/authconfig/authinfo.pyt paramsWinbindá sh                                              cCs>d}x'|D]}t||ƒr d}Pq q W||7}|S(NRIRK(RV(R”RRØRàRKRB((s!/usr/share/authconfig/authinfo.pytcheckLineWinbinds  c Cs$t}t}d}ttj|jƒdddddddd d d d d ddg}d}d}z�tttjdƒ}x.|jD]#}|j ƒ}|r»t |dƒr…t}q…q…nt |dƒrÖt }q…nt |dƒsôt |dƒr||7}q…nt |dƒ} | rsd| krs| j dƒdjƒ}||7}|dkr…||jƒ7}t }q…q…n|dkrž||j|||ƒ7}q…n||7}q…W|sÏ|d7}||jƒ7}n|jƒ|j|ƒ|jƒWdy|r |jƒnWntk rnXXt S(NRIRTspassword serverRQRUs domain logonss domain masters idmap uids idmap gidswinbind separatorstemplate homedirstemplate shellswinbind use default domainswinbind offline logonskerberos methodi¤s#--authconfig--end-line--s#--authconfig--start-line--RKR R RLiRMs [global] (RRãRNRR£RRøRRÿRëR R%RR R!RARBR R¼R R<R=( R”t authsectiontwroteauthsectionRRàRìRKRRØR#((s!/usr/share/authconfig/authinfo.pyR¾(sb              c Cs‚d}d}d}t}t}t}t}t}t} t} t} d} d} ttj|jƒzítttjdƒ} |jr‘|d7}n|d7}|j r±|d7}n|}|j rÍ|d7}n|j rã|d7}n|j rù|d7}n|j r|d 7}n|js*|js*|jrA|d 7}|d 7}n|jrW|d 7}n|jrw|j rw|d 7}n|jr�|d 7}n|jr£|d7}n|jr¹|d7}n|jrÏ|d7}n|}|jró|jddƒ}n|}|jr|d7}ntjttjƒs`|jrK|jrK|jddƒ}q`|jd dƒ}n|d7}|jr€|d7}n|jr–|d7}n|j r¬|d7}n|j rÂ|d7}n|j rØ|d 7}n|jsî|d7}n|j!r|d7}nx| j"D] }|j#ƒ}t$|dƒr_|s| d7} | |7} | d7} t%}qqt$|dƒrž|s| d7} | |7} | d7} t%}qqt$|dƒrÝ|s| d 7} | |7} | d7} t%}qqt$|d!ƒr| s| d"7} | |7} t%} qqt$|d#ƒrQ|s| d$7} | |7} | d7} t%}qqt$|d%ƒr�|s| d&7} | |7} | d7} t%}qqt$|d'ƒrÏ| s| d(7} | |7} | d7} t%} qqt$|d)ƒr| s| d*7} | |7} | d7} t%} qq| |7} qW|sC| d7} | |7} | d7} n|sj| d7} | |7} | d7} n|s‘| d 7} | |7} | d7} n|s¸| d$7} | |7} | d7} n|sß| d&7} | |7} | d7} n| s| d(7} | |7} | d7} n| s-| d*7} | |7} | d7} n| j&ƒ| j'| ƒ| j(ƒWdy| rh| j)ƒnWnt*k r|nXXt%S(+NRIi¤s dbs filess altfiless directoriess odbcbinds nispluss niss ssss ldapbinds ldaps hesiodbinds hesiods dbibinds dbbindtfilesR]s winbindR}R€s mdns4_minimal [NOTFOUND=return]s dnss winss myhostnamespasswd:s passwd: s sshadow:s shadow: sgroup:s group: s initgroups:R s netgroup:s netgroup: s automount:s automount: shosts:s hosts: s services:s services: (+RRRãRgRR£RøRRoR¥RpRrRsRtR~RIRbRuR_RvRwRxRyRzRRqR4R…tPATH_LIBSSS_AUTOFSRR|RR{R}RÿRëR R%R R¼R R<R=(R”tuserstnormalthostst wrotepasswdt wrotegroupt wroteshadowt wrotenetgrouptwroteautomountt wrotehoststwroteinitgroupst wroteservicesRìRKtservicestnetgroupRRØ((s!/usr/share/authconfig/authinfo.pyRÀps:                                                                                                    c Csft|t}|t}|t}d}|rX|rXd}|dkr—|dkr—|r‚|jrjt}nt}djtƒ}q—|jr—t }q—n|dkrÊ|dkrÊ|j rÁt }qÊt }n|dkr]|dkr|t kr|jrZt}qZq]|dks|dkr]|jdkrZ|td} |j| d |dkr>|t1kr>|j2d#d$ƒ}n|rX|d|7}qXn|d%7}|S(&NRIRwRnR RxRoRviiR|RŒs %s/pam_%s.sotoddjob_mkhomedirR‹t-s%-12s%-13s pam_%s.sos_Authentication module %s/pam_%s.so is missing. Authentication process might not work correctly.R†R‡R{R…R}t forward_passR‚Rqs cached_logins# krb5_auth krb5_ccache_type=KEYRINGRis rounds=s shadows niss nulloks broken_shadowRtR`Ras (3t pam_stackstSTACKtLOGICtNAMER`tLOGIC_FORCE_PKCS11_KRB5tLOGIC_FORCE_PKCS11Rtargv_force_pkcs11_authtLOGIC_PKCS11_KRB5R]tLOGIC_IGNORE_AUTH_ERRtLOGIC_IGNORE_UNKNOWNtLOGIC_SKIPNEXTtLOGIC_SKIPNEXT3R›RtARGVR—R™RbRttLOGIC_SUFFICIENTR4R…tAUTH_MODULE_DIRtX_OKRtmodule_missingR¢RçR%R€R�R„R…R‡Rštargv_sssd_missing_nameRmRnROR‰RŠR‹RŒRaR�R‚tLOGIC_SKIPNEXT_ON_FAILURER( R”R”t forcescardtwarnR’tlogicR¤RKR‘targv((s!/usr/share/authconfig/authinfo.pytformatPAMModule4s´              !                   3 !             !$ cCs’tjj|ƒ}tjj|ƒ}|r1| s>|rŽ| rŽytj|ƒWntk rbnXytj||ƒWqŽtk rŠqŽXndS(N(R4R£RtislinkR)R;tsymlink(R”RRRìR÷((s!/usr/share/authconfig/authinfo.pytlinkPAMService–s  cCs}xvtttttgD]_}td|}tjj|ƒ}tjj |ƒ}|r[| sh|r| rt |_ dSqWdS(Ns/pam.d/( RrRutPASSWORD_AUTH_PAM_SERVICEtFINGERPRINT_AUTH_PAM_SERVICEtSMARTCARD_AUTH_PAM_SERVICERqR4R£RRoRR˜(R”RRìR÷((s!/usr/share/authconfig/authinfo.pytcheckPAMLinked¤s  cUCs[d}d}t|j|jƒzðtt|jdƒ}|d7}|d7}|d7}|d7}|j}|j}|j} t } |t kr—t } n|t kr¬t } n|t krÇt }t }n|joÜ|jdk} g} xt|D]ú} | r| t| tkr|d7}n| } | tsÎ|jrF| td ksÎ|jr_| td ksÎ|jrx| td ksÎ|jr‘| td ksÎ|jrª| td ksÎ|jrÃ| tdksÎ|jr÷|j r÷| tdkr÷| ttk sÎ|jrF|rF| tdkr&| ttksÎ| tdkrF| ttksÎ|jri|j ri| tdksÎ|r•| r•| tdkr•| tt ksÎ|rÒ| rÒ| ttkrÒ| tdkrÒ| t!t"ksÎ|rï| rï| tdksÎ|r| r|r| tdksÎ|r.|r.| tdksÎ| rD| tdksÎ|j#r]| tdksÎ|j$rv| tdksÎ|j%r�| tdksÎ|jsª|jsª|j&rÊ| tdkrÊ| tt ksÎ|jså|jså|j&r9|j' r9| tdks)| tdkr9| t!t(kr9|j) r9| ttksÎ|j*rb| tdkrb| tt+ksÎ|j,r{| tdksÎ|j-r”| tdksÎ|j) rð| ttkrð| tdkrð| t!t.krð||j/| || ƒ7}qðqðW|j0ƒ|j1|ƒ|j2ƒWdy|r)|j3ƒnWnt4k r=nXX|j5|t6d|ƒt S(NRIi¤s #%PAM-1.0 s# This file is auto-generated. s/# User changes will be destroyed the next time sauthconfig is run. Rs R~safs.krbR†RtR�tepsRxRyR€R}RvRwR„RzR�R‡R‚R{R…RŒs/pam.d/(7RRãRR£RøRRfR]ReRtSTANDARDR%t FINGERPRINTt SMARTCARDR—Rdt pam_modulesRXt MANDATORYRŽRZR�R�RƒR’R‘R`R™Rctargv_krb5_sc_authtAUTHRaRhRYRaR“R”R�RbRtRiR–R•tACCOUNTR†RˆtLOGIC_REQUISITERnR R¼R R<R=RqRq(R”R•tcfgt cfg_basenametcfg_linkRìRKRfR]ReRktuse_sssd_smartcard_supportt prevmoduleR”((s!/usr/share/authconfig/authinfo.pytwritePAMService®sŒ               #  #, #;*)     cCs{i|_|jttttƒ|jtttt ƒ|jt t t t ƒ|jttttƒ|jttttƒtS(N(RgR…RwRptAUTH_PAM_SERVICE_ACRrt POSTLOGINRttPOSTLOGIN_PAM_SERVICE_ACRut PASSWORD_ONLYtCFG_PASSWORD_PAMtPASSWORD_AUTH_PAM_SERVICE_ACRrRxtCFG_FINGERPRINT_PAMtFINGERPRINT_AUTH_PAM_SERVICE_ACRsRytCFG_SMARTCARD_PAMtSMARTCARD_AUTH_PAM_SERVICE_ACRtR%(R”((s!/usr/share/authconfig/authinfo.pyRÁs cCsáttj|jƒytjttjƒ}Wntk rBtSX|j d|j ƒ|j d|j ƒ|j d|j ƒ|j d|jƒ|j d|jƒ|j d|jƒ|j d|jƒ|j d|jƒ|j d |jƒ|j d |jƒ|j d |jƒ|j d |jƒ|j d |jƒ|j d|jƒ|j d|jƒ|j d|jƒ|j d|jƒ|j d|jƒ|j ddƒ|j d|jƒ|j d|jƒ|j d|j ƒ|j d|j!ƒ|j d|j"ƒ|j d|j#ƒ|j d|j$ƒ|j d|j%ƒ|j d|j&ƒ|j d|j'ƒ|j d|j(ƒ|j d|j)ƒ|j d |j*ƒ|j d!|j+ƒ|j d"|j,ƒ|j-d#ƒ|j.ƒt/S($NR›RŸR RšR£R¦R­R¡R±R³RµR¶R¥R§R¨RªR©RÄR¬R²R´R·R¸R¹RºR»R¼R½R¾R¿RÀRÁRÂRÃi¤(0RãRÅRR£RâRÕRR=Rt setBoolValueR�RƒRÖR‚RoRwR_RtR’R”RqRnR~R`RaR]RfReRORRŠR�R—R•R†RˆR–RœRBRbR R¡R�RžRŸR¼R<R%(R”Ræ((s!/usr/share/authconfig/authinfo.pyR sT   cCsqttj|jƒytjttjƒ}Wntk rBtSX|j d|j ƒ|j dƒ|j ƒt S(NRÊi¤(RãRËRR£RâRÕRR=RRÖRLR¼R<R%(R”Ræ((s!/usr/share/authconfig/authinfo.pyRÃ:s   cCs¿|j}|jƒ|_|_|j rY|j rY|jrY| rY|jjdƒqYntƒ}t|ƒdkr“|j |kr“|d|_ n|j r»|j r»t |_ t |_ndS(NR^i(RIRßR™R~R—RóRÉRäRRdR RbRR%R¤(R”t oldimplicittmodules((s!/usr/share/authconfig/authinfo.pytprewriteUpdateHs  ! cCsd|jtƒ|jƒ|jtdƒyÆ|jƒ}|oF|jƒ}|oX|jƒ}|jry|os|j ƒ}n|j s‹|j r |oš|j ƒ}n|j sÁ|jrÖ|jdkrÖ|oÐ|jƒ}n|jrô|oî|jƒ}n|jr|o |jƒ}n|js$|jr9|o3|jƒ}n|jsK|jr`|oZ|jƒ}n!|jr�|o{|jtƒ}n|o�|jƒ}|o¢|jƒ}|o´|jƒ}|oÆ|jƒ}|oØ|j ƒ}|oê|j!ƒ}Wn<t"t#fk r,t$j%j&t't$j(ƒdƒdƒt)SXx0|j*D]%}|j+r7|j,j-|j+ƒq7q7W|S(Ns/lastRÏis (.RÑR%R“t setupBackuptPATH_CONFIG_BACKUPSR¶R·R$RwR²R_RaRµR`R�RXR¹R]R¼RtR³RqR¾RIR™RºR—R$RÀRÁRÂRÃRÄR½R;R=RºR»R¼R'texc_infoRRÇRîR°tadd(R”RøR1((s!/usr/share/authconfig/authinfo.pyR¼VsL         $ cCså|jƒ|jtƒ|jƒ|jtdƒt}yjxc|jD]X}|j||ƒrE|jr{|ou|jƒ}n|j r�|j j |j ƒq�qEqEWWn<t t fk ràtjjttjƒdƒdƒtSX|S(Ns/lastis (RuRÑR%R“R”R•RÇR÷RíRîR°R—R;R=RºR»R¼R'R–R(R”RËRøR1((s!/usr/share/authconfig/authinfo.pyt writeChangeds      !$cCsšd}d}g}g}tjdgtjdgtjdgtjdgg}tjƒ}|sddS|jdƒs€|d7}n||jdƒ}d|}tj|tjtjƒ}xJ|D]B}|j tjkr¿|j j j dƒ|_ t|ƒ|_q¿q¿Wd|}tj|tjtjƒ}|sXd|}tj|tjtjƒ}nx?|D]7}|j tjkr_|j j|_|jr–Pq–q_q_W|jrd|j}tj|tjtjƒ}xƒ|D]{}|j tjkrÒ|j j j dƒ}|j jr"|d |j j7}n|jrA|jd |7_qM||_qÒqÒWd |j}tj|tjtjƒ}x†|D]{}|j tjkr€|j j j dƒ}|j jrÐ|d |j j7}n|jrï|jd |7_qû||_q€q€Wnx‘|D]‰}|d |}tj||d tjƒ}xV|D]N}|j tjkr@|j|kr@d|d |_|j dƒ|_Pq@q@Wq WdS(NRIthstnsR�s _ldap._tcps _kerberos.t _kerbeross_kerberos._udp.R,Rs_kerberos-adm._udp.ii(t dnsclienttDNS_C_INtDNS_C_HSRñtgetfqdntendswithR-RÈt DNS_T_SRVtdns_typetrdataRéR R2R‘R4t DNS_T_TXTtdataR@RðR<R>t DNS_T_SOAtdns_nameRJRK(R”thostnametqnametresultsRORbR�th((s!/usr/share/authconfig/authinfo.pytprobe‘sx                       c Csdt|jƒGHdGHdt|jƒGHdt|jƒGHdt|jƒGHd|jGHd|jGHdt|jƒGHd t|jƒGHd |j GHd |j GHd t|j ƒGHd |j GHd|j GHdt|jƒGHdt|jƒGHd|jGHd|jGHd|jGHd|jGHd|jGHd|jGHdt|jƒGHdt|jƒGHdt|jƒGHdt|jƒGHdt|jƒGHdGHdt|jƒGHd|jGHdt|jƒGHd |jGHd!t|jƒGHd"|j GHd#t|j!ƒGHd$|j"GHd%t|j#ƒGHd t|jƒGHd |j GHd |j GHd&|j$pYd'GHd(t|j%o�|j&o€|j'd)k ƒGHd*t|j%o«|j&o«|j'd)kƒGHd+t|j(ƒGHd,|j'GHd-|j)GHd.t|j*ƒGHd/t|j+ƒGHd0t|j,ƒGHd|jGHd|jGHd|jGHd|jGHd1t|j&ƒGHd2t|j-ƒGHd3t|j. ƒGHd4t|j/ƒGHd5|j0 r�d6p d7GHd8|j1GHd9|j2GHd:|j3GHd;t|j4ƒ|j5fGHd<t|j6ƒ|j7fGHd=t|j8ƒ|j9fGHd>t|j:ƒ|j;fGHd?t|j<ƒ|j=fGHd@t|j>ƒ|j?fGHdAt|j@ƒGHdS(BNs caching is %ssnss_files is always enabledsnss_compat is %ss nss_db is %ssnss_hesiod is %ss hesiod LHS = "%s"s hesiod RHS = "%s"snss_ldap is %ss LDAP+TLS is %ss LDAP server = "%s"s LDAP base DN = "%s"s nss_nis is %ss NIS server = "%s"s NIS domain = "%s"snss_nisplus is %ssnss_winbind is %ss SMB workgroup = "%s"s SMB servers = "%s"s SMB security = "%s"s SMB realm = "%s"s Winbind template shell = "%s"s SMB idmap range = "%s"snss_sss is %s by defaultsnss_wins is %ssnss_mdns4_minimal is %ssmyhostname is %ss%DNS preference over NSS or WINS is %sspam_unix is always enableds shadow passwords are %ss! password hashing algorithm is %sspam_krb5 is %ss krb5 realm = "%s"s krb5 realm via dns is %ss krb5 kdc = "%s"s krb5 kdc via dns is %ss krb5 admin server = "%s"spam_ldap is %ss LDAP schema = "%s"R2spam_pkcs11 is %sRsSSSD smartcard support is %ss# use only smartcard for login is %ss smartcard module = "%s"s smartcard removal action = "%s"spam_fprintd is %sspam_ecryptfs is %sspam_winbind is %sspam_sss is %s by defaults! credential caching in SSSD is %ss6 SSSD use instead of legacy services if possible is %ss IPAv2 is %ssIPAv2 domain was %sjoinedsnot RIs IPAv2 server = "%s"s IPAv2 realm = "%s"s IPAv2 domain = "%s"spam_pwquality is %s (%s)spam_passwdqc is %s (%s)spam_access is %s (%s)spam_faillock is %s (%s)s0pam_mkhomedir or pam_oddjob_mkhomedir is %s (%s)s'Always authorize local users is %s (%s)s;Authenticate system accounts against network services is %s(ARªRHRzRoRwRJRKR_R6R2R4RtRNRLRsRqRgRZRXRYRkRhR~R{R|R}RRŠROR`R@R[R<R\R>RaR8R]R—RdRfRcReR’R�RBRœRbR R�RŸRžR�R€R”R�R†R…RƒR‚RˆR‡R•R„R–(R”((s!/usr/share/authconfig/authinfo.pyt printInfoäs”                  +*               cCsux.ttttfD]}t|j|jƒqW|jrWtj dƒtj dƒntj dƒtj dƒt S(Ns/usr/sbin/pwconvs/usr/sbin/grpconvs/usr/sbin/pwunconvs/usr/sbin/grpunconv( t CFG_SHADOWt CFG_PASSWDt CFG_GSHADOWt CFG_GROUPRãRR£RŠR4R“R%(R”R€((s!/usr/share/authconfig/authinfo.pyRÄ0s    c Cs³d}|js|jr©|jr©|jjddƒdjddƒdjddƒd}|j}|j}|s{d}n|dkr—|dkr—dStd|r©d p¬d ||r»d p¾d ||jf}|rìtj j d |ƒn|j sü| rt ||d |j ƒ\}}n(t |gdtƒ}|jƒ|j}|rp|dkr¦|jtdƒƒq¦q©|dkr©tdƒ} | d|7} |j| ƒq©n|dkS(NiRiR s RÏR�s join %s%s %s%s -U %ss-w RIs-S s[%s] ssword:R«s'Winbind domain join was not successful.s]Winbind domain join was not successful. The net join command failed with the following error:s (RqR�R§RZR RgRXtPATH_WINBIND_NETRºR»R¼R¨R×R¯R%R±R³R¢Rç( R”RÇRÍRéR�tprotocoltcmdR¹RÌterrmsg((s!/usr/share/authconfig/authinfo.pyt joinDomain<s89   !     c Cs£d}|jr™|j}|j}|j}|j}|j}|jrNd}nd}td|rfdpid||rxdp{d||rŠdp�d||rœdpŸd||| r²d pµd f } |rtj j d | ƒt | gd t ƒ} | j ƒ| j}nt| |d|ƒ\}} |dkr5t |_n|r`|dkr–|jtd ƒƒq–q™|dkr™tdƒ} | d| 7} |j| ƒq™n|dkS(Nis-NRIs! --noac %s%s %s%s %s%s %s%s %s %ss --domain=s --server=s--realm=s --principal=s --unattendeds-Ws[%s] R«s%IPAv2 domain join was not successful.seIPAv2 domain join was not successful. The ipa-client-install command failed with the following error:s (RbR�RžRŸR§R¨R¡tPATH_IPA_CLIENT_INSTALLRºR»R¼R¯R%R±R³R×R R¢Rç( R”RÇRÍRéR�RQt principalRqtnontpR´RÌR¹Rµ((s!/usr/share/authconfig/authinfo.pyt joinIPADomain_sB               cCstd}tj|ƒdS(Ns --uninstall --noac --unattended(R·R4R“(R”R´((s!/usr/share/authconfig/authinfo.pyt uninstallIPA‡s cCsX|sT|jr,tjdƒtjdƒqTytjdƒWqTtk rPqTXntS(NR!(RHR¢R–R1R;R%(R”R¥((s!/usr/share/authconfig/authinfo.pyR±‹s   cCsc|jrÜ|jrÜ|s/tjd|jƒnyAtjdƒtjtƒtjdƒ|sotjdƒnWnt k rƒnXyAtjt ƒtjdƒ|sÄtj dƒtjdƒnWq_t k rØq_Xnƒ|sòtjdƒnyYtjdƒtjt ƒ|s=ytj dƒWq=t k r9q=Xntj dƒWnt k r^nXt S(Ns/bin/domainname sG[[ $(getsebool allow_ypbind) == *off* ]] && setsebool -P allow_ypbind 1trpcbindtypbinds/bin/domainname "(none)"sF[[ $(getsebool allow_ypbind) == *on* ]] && setsebool -P allow_ypbind 0(RtRLR4R“R¡t PATH_RPCBINDR¢R—R1R;t PATH_YPBINDR–R˜R%(R”R¥((s!/usr/share/authconfig/authinfo.pyR´–sB            cCsƒt|js|jo|j td|ƒ|jrZytjdƒWqtk rVqXn%ytjdƒWntk r~nXtS(Ntnslcdse[[ $(getsebool authlogin_nsswitch_use_ldap) == *off* ]] && setsebool -P authlogin_nsswitch_use_ldap 1sd[[ $(getsebool authlogin_nsswitch_use_ldap) == *on* ]] && setsebool -P authlogin_nsswitch_use_ldap 0( R¦R_RaRIt PATH_NSLCDR4R“R;R%(R”R¥((s!/usr/share/authconfig/authinfo.pyRƺs    cCs#t|jp|jtd|ƒdS(NR‚(R¦RqR�t PATH_WINBIND(R”R¥((s!/usr/share/authconfig/authinfo.pyR¿ËscCs¢|jr|jpE|jr-tjjtƒpE|joEtjjtƒ}|jpf|jpf|jpf|}t |t d|pš|oš|jp™|jp™|j ƒdS(NR( R~R—R4R£texiststPATH_SSSD_CONFIGRIR™RbR¦t PATH_SSSD(R”R¥texplicitenableR—((s!/usr/share/authconfig/authinfo.pyR»ÐscCsB|jr>tjdtdftjƒr>tttd|ƒndS(Ns %s/pam_%s.soRTtoddjobd(RˆR4R…ReRfR¦R%t PATH_ODDJOBD(R”R¥((s!/usr/share/authconfig/authinfo.pyRÅÛs cCs8x|jD]}||ƒq W|jr4|jƒndS(N(R°R¤R»(R”R¥Rñ((s!/usr/share/authconfig/authinfo.pytpostãs cCsx|js|jrtytj|jƒWn>tk rf\}}|tjkrgtj|jdƒqgnXt |jƒSt S(Nií( R_RaR4R¡R:R;RBtENOENTRRÝR(R”RÓRÔ((s!/usr/share/authconfig/authinfo.pyttestLDAPCACertsés cCsE|js|jrA|js*d|jkrAtjd|jƒndS(Nsldaps:s/usr/sbin/cacertdir_rehash (R_RaR6R2R4R“R:(R”((s!/usr/share/authconfig/authinfo.pytrehashLDAPCACertsôscCs­|js tS|jƒyWtj|jƒ}t|jdtdƒ}|j|j ƒƒ|j ƒ|j ƒWn.t t t fk rž|jtdƒƒtSX|jƒtS(NRØi¤s Error downloading CA certificate(R©RRËturllib2turlopenRHR:tLDAP_CACERT_DOWNLOADEDR¼R½R<R=R;R+R¢RçRÌR%(R”treadftwritef((s!/usr/share/authconfig/authinfo.pytdownloadLDAPCACertùs    cCs¢|ddkr!td|}n||_t|ƒsžyQtj|ƒ}x;|D]3}ytj|d|ƒWqOtk r�qOXqOWWqžtk ršqžXndS(NiRØs/backup-(R•R£RÝR4RÙR)R;(R”RRR>((s!/usr/share/authconfig/authinfo.pyR” s      cCs@|j|ƒt}x&tD]}|j|jƒo5|}qW|S(N(R”R%RãRR£(R”RRøR€((s!/usr/share/authconfig/authinfo.pyt saveBackups   cCsQ|ddkr!td|}nt}x#tD]}|j|ƒoF|}q.W|S(NiRØs/backup-(R•R%RãR (R”RRøR€((s!/usr/share/authconfig/authinfo.pyt restoreBackups  cCs|jtdƒS(Ns/last(RÔR•(R”((s!/usr/share/authconfig/authinfo.pyt restoreLast's(TRžRŸRòRÍRÎRÏRßRçRîRõRúRRR RRR%R/RCRJRQRSRWRoR"RvRsRÉRÌRÎRRÑR½RÒR$R²R³RéRµRïR¶R·RöR¸R¹RR$RºR¼R½RARBR¾RÀRnRqRuR…RÁRÂRÃR“R¼R˜R¬R­RÄR¶RºR»R±R´RÆR¿R»RÅRÉRËRÌRÒR”RÓRÔRÕ(((s!/usr/share/authconfig/authinfo.pyRé%s¢ Ö     *   9   K  " 1 *  + 7   œ ¸    "    U u  5 B  \ õ  F  Y : H Ä b  T /   )  S L # (  $         ((((((s ldapServersldap_uri(s ldapBaseDNR5(s enableLDAPSR7(s ldapSchemas ldap_schema(s ldapCacertDirR;(s kerberosKDCR=(skerberosAdminServerR?(s kerberosRealmRA(senableCacheCredsRC(senableCacheCredsskrb5_store_password_if_offline((ÛRtreR4RÒR7RñR¸RÃR¡RâRœRºRBRÍRïR;Rýt subprocessRtgettexttlgettextRçR­t ImportErrorRRqRrR†RuRˆRrR‹RsR�RtR�R7R'tglobalstLIBDIRRet PATH_PWCONVR¾R#RÁRÂRÅR¿RÈt PATH_SEBOOLt PATH_SCEVENTDRßtPATH_LIBNSS_DBtPATH_LIBNSS_LDAPR£RtPATH_LIBNSS_NIStPATH_LIBNSS_HESIODtPATH_LIBNSS_ODBCBINDtPATH_LIBNSS_WINBINDtPATH_LIBNSS_WINStPATH_LIBNSS_SSSt PATH_PAM_KRB5t PATH_PAM_LDAPtPATH_PAM_WINBINDtPATH_PAM_PKCS11tPATH_PAM_FPRINTDt PATH_PAM_SSSRFRR²R·RÿRÏR•RÄtLOGIC_REQUIREDRRdtLOGIC_OPTIONALR`R_t LOGIC_PKCS11R\R^R[RaRbtLOGIC_ALWAYS_SKIPRiR RRRR R"R$R)R*R+R3RDRHRMRPRRRVtargv_unix_authtargv_unix_passwordt argv_afs_authtargv_afs_passwordtargv_pwquality_passwordtargv_passwdqc_passwordt argv_eps_authtargv_eps_passwordtargv_fprintd_authtargv_pkcs11_authR]Rhtargv_krb5_authR|targv_krb5_passwordtargv_ldap_authtargv_ldap_passwordt argv_otp_authtargv_succeed_if_authtargv_succeed_if_accounttargv_succeed_if_sessiontargv_succeed_if_nonlogintargv_winbind_authtargv_winbind_passwordt argv_sss_authtargv_sss_passwordtargv_keyinit_sessiontargv_ecryptfs_authtargv_ecryptfs_passwordtargv_ecryptfs_sessiontargv_succeed_if_not_gdmtargv_lastlog_gdmtargv_lastlog_not_gdmtargv_faildelayRŽtrangeR}R~tSESSIONtPASSWORDRWR{RXRYRZRcRwR‡R‰RxRyR•RzR%RR‘tDEFAULT_DNS_QUERY_SIZEtcompileR#R�R’R treadlinkR¢R;R¦RªR×RÝRáRäRèR½RìRøR R"R$R%RäRêRRRRRíRtCFG_KRBR4RNRgRÔRpRtRŠRŒRŽRÅRËRR.R"R4R®R¯R°R±R7R8RãR>Ré(((s!/usr/share/authconfig/authinfo.pyts‚                                                                                         (                                                                                                                                                                                                                                                                                                                                                       Z    #S  7i