Prv8 Shell
Server : Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/1.0.0-fips mod_auth_passthrough/2.1 mod_bwlimited/1.4
System : Linux server.jackjohnson.com 2.6.32-279.5.2.el6.x86_64 #1 SMP Fri Aug 24 01:07:11 UTC 2012 x86_64
User : jackjohn ( 502)
PHP Version : 5.3.17
Disable Function : NONE
Directory :  /usr/share/authconfig/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/authconfig/authinfo.pyo
E&QcK@sRddkZddkZddkZddkZddkZddkZddkZddkZddkZddk	Z	ddk
Z
ddkZddkZddk
Z
ddkZddkTddkZddkZeiZyddkaWnej
o
danXdZdZdZdZdZdZd	Zd
ZdZdZ d
e!e"djo
dZ#ndZ#e#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2d Z3d!Z4d"Z5d#Z6d$Z7d%Z8d&Z9d'Z:d(Z;d)Z<d*Z=d+Z>d,Z?d-Z@e#d.ZAd/e#d0ZBeiCiDeBpe#d0ZBne#d1ZEe#d2ZFe#d3ZGe#d4ZHe#d5ZIe#d6ZJe$d7ZKe$d8ZLe$d9ZMe$d:ZNe$d;ZOe$d<ZPd=ZQd>ZRd?ZSd@ZTdAZUedBZVdCZWdDZXdEZYdFZZdGZ[dHZ\dIZ]dJZ^dKZ_dLZ`dMZadNZbdOZcdPZddQZedRZfdSZgdTZhdUZidVZjdWZkdXZldYZmdZZnd[Zod\Zpd]Zqd^gZrd^d_gZsd`gZtd`gZud^dadbgZvdcgZwd`gZxd_gZygZzddgZ{deddgZ|d`gZ}d`dfgZ~d_gZd`gZd_gZd`gZdgdhgZdidhgZdjdhdkgZdldhdkgZd`gZd_gZd`gZd_gZdmgZdndodpdqdrgZedsdt\ZZZZdudvdwdxgZedsdy\ZZZZZedsdt\ZZZZgZeeeefD]
Zegqe[ZeeeWdzggeeead{egeee]d|e{geeeZd}e~geeeYd~ggeeeYdggeeeYdergeeeXd{egeeeYdegeeeYdetgeeeYdetgeeeYdexgeeeYd}e}geeeYdegeeeYdegeeeYdegeeeWdggeeeWdggeeeWdggeeeYdggeeeYd{egeee[dggeee[dggeee[d}ggeee[dggeeeWd~ggeeeXdevgeeeXdewgeeeYdesgeeeYdegeeeYdeugeeeYdeugeeeYdeygeeeYd}egeeeYdegeeeYdegeeeWdggeeeZdegeeeWdggeeeZdggeeead{egeeeWdggeeeZdggeeeZdggeeeZdggeeeZd}ggeeeZdggg/ee<eeeWdzggeeeWdggeeeYdergeeeXd{egeeeYdegeeeYdetgeeeYdetgeeeYdexgeeeYd}e}geeeYdegeeeYdegeeeYdegeeeWdggeeeWdggeeeWdggeeeYdggeeeYd{egeee[dggeee[dggeee[d}ggeee[dggeeeWd~ggeeeXdevgeeeXdewgeeeYdesgeeeYdegeeeYdeugeeeYdeugeeeYdeygeeeYd}egeeeYdegeeeYdegeeeWdggeeeZdegeeeWdggeeeZdggeeead{egeeeWdggeeeZdggeeeZdggeeeZdggeeeZd}ggeeeZdggg+ee<eeeWdzggeeeWdggeeeYdggeeeWdggeeeWdggeeeWdggeeeYdggeeeYd{egeee[dggeee[dggeee[d}ggeee[dggeeeWd~ggeeeWdggeeeZdegeeeWdggeeeZdggeeead{egeeeWdggeeeZdggeeeZdggeeeZdggeeeZd}ggeeeZdgggee<eeeWdzggeee]d|e|geeeZd}e~geeeYd~ggeeeWdggeeeWdggeeeWdggeeeYdggeeeYd{egeee[dggeee[dggeee[d}ggeee[dggeeeWd~ggeeeWd|ggeeeZdegeeeWdggeeeZdggeeead{egeeeWdggeeeZdggeeeZdggeeeZdggeeeZd}ggeeeZdgggee<dZdZdZdZdZdZdZdZdZdZdZdZdddYZdddYZdddYZdZdZdefdYZedsd\ZZZZZZZZZZZZZZZZZZZZZZedededededededededededededededededededededededededdededeededeed	edeededeededededededededededBgZh	dd6dd6dd6dd6dd6dd6dd6dd6dd6ZdddYZdS(iN(t*s/etcssystem-authssystem-auth-acs
password-authspassword-auth-acsfingerprint-authsfingerprint-auth-acssmartcard-authssmartcard-auth-actdefaulttlib64tacutils/lib64s/libs	/securitys/usr/sbin/pwconvs
/sbin/rpcbinds/usr/sbin/nscds/var/run/nscd/nscd.pids/usr/sbin/nslcds/var/run/nslcd/nslcd.pids/usr/sbin/dbbinds/var/run/dbbind.pids/usr/sbin/dbibinds/var/run/dbibind.pids/usr/sbin/hesiodbinds/var/run/hesiodbind.pids/usr/sbin/ldapbinds/var/run/ldapbind.pids/usr/sbin/odbcbinds/var/run/odbcbind.pids/usr/sbin/winbindds/var/run/winbindd.pids/usr/sbin/sssds/var/run/sssd.pids/usr/sbin/ypbinds/var/run/ypbind.pids/usr/sbin/oddjobds/var/run/oddjobd.pids/usr/sbin/setsebools/usr/bin/pkcs11_eventmgrs/var/run/sceventd.pids/usr/bin/pkcs11_setups/libnss_db.so.2s/usrs/libnss_ldap.so.2s/libnss_nis.so.2s/libnss_hesiod.so.2s/libnss_odbcbind.so.2s/libnss_winbind.so.2s/libnss_wins.so.2s/libnss_sss.so.2s/pam_krb5.sos/pam_ldap.sos/pam_winbind.sos/pam_pkcs11.sos/pam_fprintd.sos/pam_sss.sos/usr/bin/nets/usr/sbin/ipa-client-installs/etc/openldap/cacertssauthconfig_downloaded.pems/var/lib/authconfigs/sssd/sssd.conftrequiredt	requisitet
sufficienttoptionals,[default=bad success=ok user_unknown=ignore]sJ[default=bad success=ok auth_err=ignore user_unknown=ignore ignore=ignore]s@[success=done authinfo_unavail=ignore ignore=ignore default=die]s([success=done ignore=ignore default=die]s4[success=ok authinfo_unavail=2 ignore=2 default=die]s![success=ok ignore=2 default=die]s[success=1 default=ignore]s[success=3 default=ignore]cCs|idddiS(Ns
ii(tsplittrstrip(ts((s!/usr/share/authconfig/authinfo.pyt
snipStringscCs=|p|S|idd}ditd|idS(Ns	t t,(treplacetjointfiltertNoneR(tlstR
((s!/usr/share/authconfig/authinfo.pyt	cleanListscCs-|i|o|t|iStSdS(N(t
startswithtlentlstriptFalse(tlinetkey((s!/usr/share/authconfig/authinfo.pytmatchKeyscCs7|i|o|t|itidStSdS(Nt=(RRRtstringt
whitespaceR(RR((s!/usr/share/authconfig/authinfo.pytmatchKeyEqualsscCs
|i|S(N(R(RR((s!/usr/share/authconfig/authinfo.pyt	matchLinescCs|ii|iS(N(tlowerR(RR((s!/usr/share/authconfig/authinfo.pyt
matchLineIscCs|o
|d|S|SdS(NR
((Rtvalue((s!/usr/share/authconfig/authinfo.pytcommaAppends
cCsV|o
|otS|p|otS|o||jS|i|ijSdS(N(RtTrueR (tatbtcase_sensitive((s!/usr/share/authconfig/authinfo.pyt
stringsDifferscCs|idd}t|djo|d}nd}t|}xto|i||}|djodS|djo&||dio||7}qHn||t|jo&|||io||7}qHn|SWdS(Nt:ii(RRR$tfindRtisalnum(t
configurationt	candidateRtstarttclen((s!/usr/share/authconfig/authinfo.pytcheckNSSs$
"
,
cCsd}ySti|||}|tijoti|tinti|tiWnbtj
oV\}}|djo+yti|Wqtj
oqXnt	||nX|S(Ni(
tostopentO_RDONLYtfcntltlockftLOCK_SHtLOCK_EXtOSErrortclosetIOError(tfilenametmodetpermstfdterrnotstrerr((s!/usr/share/authconfig/authinfo.pytopenfdLockeds
	cCs&tit|titiB|dS(Nsr+(R1tfdopenRAtO_RDWRtO_CREAT(R;R=((s!/usr/share/authconfig/authinfo.pyt
openLockedscCsGd}|id}x+|D]#}|o|d|d7}qqW|S(NtR
s  kdc = s
(R(tkdclisttoutputtkdc((s!/usr/share/authconfig/authinfo.pytkrbKdcscCsMd}|id}x1|D])}|o|d7}||d7}qqW|S(NRFR
s  admin_server = s
(R(tadminserversRHtadminserver((s!/usr/share/authconfig/authinfo.pytkrbAdminServers
cCsQd}|o@|d|d7}|t|7}|t|7}|d7}n|S(NRFRs = {
s }

(RJRM(trealmRGRKRH((s!/usr/share/authconfig/authinfo.pytkrbRealmscCs|idd}t|djo
d}n|d}|diid}|iid}||jo|itidStS(NRiiRFi(RRR RRRRR(RRtlinelsttparamtkeylst((s!/usr/share/authconfig/authinfo.pytmatchLineSMBs


ttry_first_passtuse_authtoktuse_first_passsretry=3stype=s
enforce=userst	card_onlyt
wait_for_cardtno_subsequent_prompts
uid >= 500tquiets	uid < 500sservice in crondtuse_uidsKservice notin login:gdm:xdm:kdm:xscreensaver:gnome-screensaver:kscreensavertrevoketdescrypttbigcrypttmd5tsha256tsha512iitauthtaccounttsessiontpassworditenvt
succeed_iftpkcs11tkrb5tpermittfprintdtunixtssstafssafs.krbteps_authtldaptotptwinbindtdenytaccesst	localusertcracklibtpasswdqct
eps_passwdtkeyinittlimitst	mkhomedircCs/d}|id}||idd7}|S(NsDC=t.s,DC=(R	R(tdomainRH((s!/usr/share/authconfig/authinfo.pyt	domain2dnsicCss|ph|o)|ptidntidqoytittidWqotj
oqoXntS(Ns'/sbin/service nscd stop >/dev/null 2>&1s/sbin/service nscd starts/sbin/service nscd stop(R1tsystemtstatt
PATH_NSCD_PIDR8R$(t
enableCachingtnostartt	onlystart((s!/usr/share/authconfig/authinfo.pyttoggleCachingServices
	cCs|o0|o)|ptid|ny[tittidtid|p)|ptidntidnWntj
onXytittidtid|pPy)tit|ptidnWqtj
otid	qXnWqtj
oqXn|ptid
ny]tit|p8ytittidWqtj
oqXntidWntj
onXtS(
Ns/bin/domainname s/sbin/chkconfig --add rpcbinds&/sbin/chkconfig --level 345 rpcbind ons*/sbin/service rpcbind stop >/dev/null 2>&1s/sbin/service rpcbind starts/sbin/chkconfig --add ypbinds%/sbin/chkconfig --level 345 ypbind ons/sbin/service ypbind restarts/sbin/service ypbind starts/bin/domainname "(none)"s/sbin/service ypbind stops&/sbin/chkconfig --level 345 ypbind off(R1RRtPATH_RPCBINDR8tPATH_YPBINDtPATH_YPBIND_PIDR$(t	enableNist	nisDomainRR((s!/usr/share/authconfig/authinfo.pyttoggleNisServicesP






	

	c	Cs|oywti|tid|tid|d|p9|ptid|dntid|dnWqtj
oqXnymti||p@y&ti|tid|dWqtj
oqXntid|dWntj
onXtS(	Ns/sbin/chkconfig --add s/sbin/chkconfig --level 345 s ons/sbin/service s stop >/dev/null 2>&1s starts stops off(R1RRR8R$(tenabletpathtpidfiletnameRR((s!/usr/share/authconfig/authinfo.pyttoggleSplatbindService
s.
	

	cCs|odSdSdS(Ntenabledtdisabled((tval((s!/usr/share/authconfig/authinfo.pyt
formatBool%scCsiyti\}}Wntj
odSX|p ti|}ti|nd}y7ti|ti}ti|ti|ti@Wnt	j
onXt
}	x0|	p(y7g}
g}ti|gg|gd\}
}}Wn6tij
o'\}
}t
iid|dnX|
o"|oti|t}	qnd}yti|d}Wntj
o\}
}|
tijp|
tijoq|
tijoti|t}	qt
iid|dti|t}	qnX|oyp||7}|ot
ii|n||jo:ti||ti|dd}t
iid	nWqtj
o:\}
}t
iid
|dti|t}	qXqti|t}	qWyti|tiWntj
onXd}yti|d\}}Wn3tj
o'\}
}t
iid|dnX|S(
NiRFi<sselect: s
isread: s
s<...>
swrite: is	waitpid: (R1tforkptyR8Rt_exitR4tF_GETFLtF_SETFLt
O_NONBLOCKR:RtselectterrortsyststderrtwriteR9R$treadR?tEINTRtEAGAINtEIOtkilltsignaltSIGTERMtwaitpid(tcommandtechotquerytresponsetpidtmastertstatusRHtiteoftifdstefdstofdsterrttexttctchild((s!/usr/share/authconfig/authinfo.pytfeedFork+s"+
 






c
Csyti|}Wntj
otSXxW|D]O}y3ti|d|}ti|iotSWq1tj
oq1Xq1WtS(Nt/(R1tlistdirR8R$RtS_ISREGtst_modeR(RRR;tst((s!/usr/share/authconfig/authinfo.pyt
isEmptyDirrs		cCsygttg|dt}|idid}|idjodS|ddjo|d3nWntj
odSX|S(Ntstdoutis
iRF(tPopentPATH_SCSETUPtPIPEtcommunicateRt
returncodeRR8(toptionsRR((s!/usr/share/authconfig/authinfo.pytcallPKCS11SetupscCs%tdg}|djogS|S(Ntlist_modules(RR(tmods((s!/usr/share/authconfig/authinfo.pytgetSmartcardModuless
cCstdtdgS(NtLocktIgnore(t_(((s!/usr/share/authconfig/authinfo.pytgetSmartcardActionsscCst|}|i|S(N(tAuthInfoR(tmsgcbtinfo((s!/usr/share/authconfig/authinfo.pyRs
t	SaveGroupcBseZdZdZRS(cCs||_||_dS(N(tsaveFunctiontattrlist(tselftsavefuncR((s!/usr/share/authconfig/authinfo.pyt__init__s	cCsx|iD]\}}||ijotS|djo(t||t||jotSq
|djo.tt||t||totSq
|djo.tt||t||totSq
q
WtS(NR&RR(RtinconsistentAttrsR$tgetattrR(R(RR%R&tanametatype((s!/usr/share/authconfig/authinfo.pytattrsDiffers

	
%	
%
(t__name__t
__module__RR(((s!/usr/share/authconfig/authinfo.pyRs	tSafeFilecBs5eZdZdZdZdZdZRS(cCstii|\}}tid|d|dt|_tdd||iigdti	dti
djoti|ii|n||_
dS(	Ntdirtprefixtdeletes/bin/cps-afRs	/dev/nulli(R1RRttempfiletNamedTemporaryFileR$tfiletcallRR2tO_WRONLYtfchmodtfilenoR;(RR;tdefault_modetbaseR((s!/usr/share/authconfig/authinfo.pyRs!cCs@|iiti|iiti|ii|idS(N(RtflushR1tfsyncRtrenameRR;(R((s!/usr/share/authconfig/authinfo.pytsaves
cCs+y|iiWntj
onXdS(N(RR9R8(R((s!/usr/share/authconfig/authinfo.pyR9scCs|ii|S(N(RR(RR
((s!/usr/share/authconfig/authinfo.pyRscCs$|iid|iiddS(Ni(Rtseekttruncate(R((s!/usr/share/authconfig/authinfo.pytrewinds(RRRRR9RR(((s!/usr/share/authconfig/authinfo.pyRs
	
			t
FileBackupcBs,eZdZdZdZdZRS(cCs||_||_dS(N(t
backupNametorigPath(Rt
backupnametorigpath((s!/usr/share/authconfig/authinfo.pyRs	cCsut}d}d}yt|tid}Wntj
otSXyt|d}|iWntj
o
t}nXyPxI|oAti	|d}|pt}Pnti
|ii|qWWntt
fj
o
t}nXy|oti|nWntt
fj
onXy*|o|o|i|inWntt
fj
o
t}nX|S(Niii(R$RRAR1R3R:RRRRRRRR8R9R(RtsrctdesttrvtsrcfdtdestfileR&((s!/usr/share/authconfig/authinfo.pytsafeCopysD"
cCst}y(tii|pti|nWnttfj
o
t}nX|d|i}|o|i	|i
|}n|S(NR(R$R1RtisdirtmkdirR8R:RRRR(RtdestdirRt
backuppath((s!/usr/share/authconfig/authinfo.pytbackups
cCst}ytii|ptSWnttfj
o
t}nX|d|i}|o,tii|o|i	||i
}n|S(NR(R$R1RRRR:R8RtisfileRR(Rt	backupdirRR((s!/usr/share/authconfig/authinfo.pytrestores	(RRRRRR(((s!/usr/share/authconfig/authinfo.pyRs		%	cCs2tid}ti|oti|djS(Ns$/sbin/chkconfig nscd >/dev/null 2>&1i(R1Rt	WIFEXITEDtWEXITSTATUS(R((s!/usr/share/authconfig/authinfo.pyt	readCachescCs]|otidtidn5ytittidWntj
onXtS(Ns/sbin/chkconfig --add nscds#/sbin/chkconfig --level 345 nscd ons$/sbin/chkconfig --level 345 nscd off(R1RRt	PATH_NSCDR8R$(R((s!/usr/share/authconfig/authinfo.pyt
writeCaches

tCacheBackupcBseZdZdZRS(cCst}y(tii|pti|nWnttfj
o
t}nX|d|i}|opd}y5t
}t|d}|it
t|Wntj
o
t}nX|o|iqn|p+yti|Wq
tj
oq
Xn|S(NRtw(R$R1RRRR8R:RRRRR2RtstrtintR9tunlink(RRRRRR((s!/usr/share/authconfig/authinfo.pyR&s.		c
Cst}ytii|ptSWnttfj
o
t}nX|d|i}|otii|osd}y/t
|d}t|i}t
|Wn"tttfj
o
t}nX|o|iqn|S(NRtr(R$R1RRRR:R8RRRR2RRRt
ValueErrorR9(RRRRRR((s!/usr/share/authconfig/authinfo.pyRBs$	(RRRR(((s!/usr/share/authconfig/authinfo.pyR	%s	ishesiod.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.confRFs/pam.d/t
authconfigs/sysconfig/authconfigtnetworks/sysconfig/networkslibuser.confs
/libuser.confs
login.defss/login.defss	sssd.conftldap_urit
ldapServertldap_search_baset
ldapBaseDNtldap_id_use_start_tlstenableLDAPStldap_schemat
ldapSchematldap_tls_cacertdirt
ldapCacertDirtkrb5_servertkerberosKDCtkrb5_kpasswdtkerberosAdminServert
krb5_realmt
kerberosRealmtcache_credentialstenableCacheCredsRcBsQeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!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/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBRS(Ac2Cs||_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|_ d|_!d|_"d|_#d|_$d|_%d|_&d|_'d|_(d|_)d|_*d|_+d|_,d|_-d|_.d|_/d|_0d|_1d|_2d|_3d|_4d|_5d|_6d|_7d|_8t9|_:d|_;d|_<d|_=d|_>d|_?d|_@d|_Ad|_Bd|_Cd|_Dd|_Ed|_Fd|_Gd|_Hd|_Id|_Jd|_Kd|_Ld|_Md|_Nd|_Ot|_Pt|_Qd|_Rd|_Sd|_Td|_Ud|_Vd|_Wd|_Xd|_Yd|_Zd|_[d|_\t9|_]d|_^d|__d|_`t|_atbo-ytbib|_^Wqtcj
oqXntd|iedZd[gtd|ifd\d]gtd|igd^d_d`gtd|ihdadbdcdddedfgtd|iidggtd|ijdhgtd|ikdidjdkdldmdndodpgtd|ildqdrdsdtdudvdwdxdydzd{d|d}d~gtd|imddgtd|indddddddddddgtd|iodddddddddddddddddddddgtd|ipdddddddddddddddddddddddddddddddddg!td|iqdddddddddddddddddddddddddddddgtd|irdgg|_sdS(NRFtenableCacheR&timplicitSSSDt	hesiodLHSRt	hesiodRHSRRtnisLocalDomaint	nisServerRRRRRtpasswordAlgorithmR!RtsmbSecuritytsmbRealmt
smbServersRtkerberosRealmviaDNStkerberosKDCviaDNSR#tforceSSSDUpdatet
enableLDAPtenableKerberostenableLDAPAuthtenableIPAv2tsmartcardActiontsmartcardModuletsmbWorkgroupt
smbIdmapRangetwinbindSeparatortwinbindTemplateHomedirtwinbindTemplatePrimaryGrouptwinbindTemplateShelltwinbindUseDefaultDomaintwinbindOfflinetenableDBtenableDirectoriest
enableWinbindtenableOdbcbindt
enableNIS3t	enableNIStenableLDAPbindtenableHesiodbindtenableHesiodt
enableDBIbindtenableDBbindtenableCompatt
enableWINSt
enableMDNSt
enableSSSDtpreferDNSinHoststcracklibArgstpasswdqcArgst
localuserArgst
pamAccessArgstenablePAMAccesst
mkhomedirArgstenableMkHomeDirt
algoRoundstenableShadowtenableNullOktforceBrokenShadowtenableSmartcardtforceSmartcardtenableWinbindAutht	enableAFStenableAFSKerberostenableCracklibt	enableEPSt	enableOTPtenablePasswdQCtenableLocAuthorizetenableSysNetAuthtenableSSSDAutht
enableFprintdt	pamLinkedtimplicitSSSDAuthtenableForceLegacytipav2Servertipav2Domaint
ipav2RealmtipaDomainJoinedt
ipav2NoNTP(senableCacheR&(simplicitSSSDR&(s	hesiodLHSR(s	hesiodRHSR(s	nisDomainR(snisLocalDomainR(s	nisServerR(s
ldapServerR(s
ldapBaseDNR(senableLDAPSR&(s
ldapSchemaR(s
ldapCacertDirR(spasswordAlgorithmR(spasswordAlgorithmR(spasswordAlgorithmR(s
kerberosRealmR(skerberosKDCR(ssmbSecurityR(ssmbRealmR(s
smbServersR(skerberosAdminServerR(skerberosRealmviaDNSR&(skerberosKDCviaDNSR&(s
ldapServerR(s
ldapBaseDNR(senableLDAPSR&(s
ldapSchemaR(s
ldapCacertDirR(senableCacheCredsR&(s
kerberosRealmR(skerberosKDCR(skerberosAdminServerR(sforceSSSDUpdateR&(s
enableLDAPR&(senableKerberosR&(senableLDAPAuthR&(senableIPAv2R&(ssmartcardActionR(ssmartcardModuleR(ssmbWorkgroupR(s
smbServersR(ssmbRealmR(ssmbSecurityR(s
smbIdmapRangeR(swinbindSeparatorR(swinbindTemplateHomedirR(swinbindTemplatePrimaryGroupR(swinbindTemplateShellR(swinbindUseDefaultDomainR&(swinbindOfflineR&(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&(s
enableNIS3R&(s	enableNISR&(senableIPAv2R&(s
enableSSSDR&(spreferDNSinHostsR&(simplicitSSSDR&(scracklibArgsR(spasswdqcArgsR(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&(senableCracklibR&(s	enableEPSR&(s	enableOTPR&(senablePasswdQCR&(senableLocAuthorizeR&(senableSysNetAuthR&(swinbindOfflineR&(senableSSSDAuthR&(s
enableFprintdR&(s	pamLinkedR&(simplicitSSSDAuthR&(senableIPAv2R&(spasswordAlgorithmR(senableShadowR&(s	enableNISR&(s
enableLDAPR&(senableLDAPAuthR&(senableKerberosR&(senableSmartcardR&(sforceSmartcardR&(senableWinbindAuthR&(s
enableWinbindR&(senableDBR&(senableHesiodR&(senableCracklibR&(senablePasswdQCR&(senableLocAuthorizeR&(senablePAMAccessR&(senableCacheCredsR&(senableMkHomeDirR&(senableSysNetAuthR&(s
enableFprintdR&(s
enableSSSDR&(senableSSSDAuthR&(senableForceLegacyR&(sipav2ServerR(sipav2DomainR(s
ipav2RealmR(senableIPAv2R&(sipaDomainJoinedR&(s
ipav2NoNTPR&(s	nisDomainR(tt	messageCBt	backupDirRR&R'RRR!RR.RR/RR)RR(R7R,R-R+R8R9R:R;R<R=R>RjRkRlRnRRmR6R5R$RJR?R@RGR1RRDRCRIRHRFRERBRARKRLRNRMR4R]R^R$RXR_R`R2R3R*RVRaRbRWR\RcRSRdRURZRetbrokenShadowRYR[RfRiR%RhR#tjoinUsertjoinPasswordRORPRQRRRTRt
ldapCacertURLRRgt
sssdConfigt
sssdDomainR0tconfChangedt
SSSDConfigR:RRtwriteHesiodtwriteNISt	writeLDAPtwriteLibusertwriteLogindefst
writeKerberost	writeSSSDtwriteSmartcardtwriteWinbindtwriteNSStwritePAMtwriteSysconfigtwriteNetworktsave_groups(RR((s!/usr/share/authconfig/authinfo.pyRs0																																																																																																																											cCs^t||}||jo>t||||t||jo|ii|qZndS(N(RtsetattrRtappend(RtattrR"treftoldval((s!/usr/share/authconfig/authinfo.pytsetParam/s

cCs	|ip|iotSd
}d}d}d}d
}xB|D]:}t|d|o ||jotS|d7}q?q?W|djotSd
}xB|D]:}t|d|o ||jotS|d7}qqW|djotS|io|iotStS(NtNIStLDAPtWinbindtHesiodtIPAv2tKerberostLDAPAuthtWinbindAutht	SmartcardiRi(RRRRR(RRRR(RR(RiRuRRR2R.R$(Rtnssalltpamalltidsupportedt
authsupportedtnumtt((s!/usr/share/authconfig/authinfo.pyt
sssdSupported6s6



cCsytitti}Wntj
otSX|idt|i	d||idt|i	d||i
tS(NR&tlhsR'trhs(tshvfileRtall_configst
CFG_HESIODRR:RRRtgetValueR9R$(RRtshv((s!/usr/share/authconfig/authinfo.pyt
readHesiodUs""
c	CsYytttid}Wntj
otSXd}x|D]}|i}t|d}|o |iot	||}q>nt|d}|o|i
dd}t|djoq>n|d|ijoq>nt|djoq>n|d}t|d}|ot	||}q4q>q>W|i
d	|||itS(
NRRFtypserverR}iiitserverR)(R2RtCFG_YPRR:RtstripRR(R#RRRRR9R$(RRtft	nisserverRR"((s!/usr/share/authconfig/authinfo.pytreadNISfs8

cCsw|id}d}x[|D]S}|oF|o|d7}nd|jo||7}qo|d|d7}qqW|S(NR
RFs://sldap://R(R(RR
tltrettitem((s!/usr/share/authconfig/authinfo.pytldapHostsToURIss
c	Cs	t|_ytttid}Wntj
oytttid}Wqtj
ohytttid}Wqtj
o8yttt	id}Wqtj
ot
SXqXqXnXx|D]}|i}t|d}|o|i
d||qnt|d}|o|i
d||qnt|d}|o|i
d||qnt|d}|o#|i
dt|d	|qnt|d
}|o|i
d||qqqW|it|i|_|itS(NRRRthostRturitsslRt	start_tlst
nss_schemaR(tPATH_LDAP_CACERTSRR2RtCFG_NSSLDAPRR:t	CFG_NSLCDtCFG_PAMLDAPtCFG_LDAPRRRRRRRRR9R$(RRRRR"((s!/usr/share/authconfig/authinfo.pytreadLDAPsP	
cCs*y|i|SWntj
odSXdS(NRF(tallKerberosKDCstKeyError(RRN((s!/usr/share/authconfig/authinfo.pytgetKerberosKDCscCs*y|i|SWntj
odSXdS(NRF(tallKerberosAdminServersR(RRN((s!/usr/share/authconfig/authinfo.pytgetKerberosAdminServersc
Csd}h|_h|_ytttid}Wntj
otSXx|D]}|i}|dd!djo|dd!}d}qPn|djot	|d}|o|i
d	||qPnt	|d
}|o)|i
dt|ddj|qPnt	|d
}|o)|i
dt|ddj|qPqNqP|djo|p:|idd}t|djoqPn|d}qN|dd!djo
d}qPn|ip
||_nt	|d}|o&t|i|||i|<qPnt	|d}|o#t|i|||i|<qNqPqPW|ioB|i
d|i|i||i
d|i|i|n|itS(NRFRiit[itlibdefaultst
default_realmR!tdns_lookup_kdcR/ttruetdns_lookup_realmR.trealmst}RItadmin_serverRR(RRR2RtCFG_KRB5RR:RRRRRRRRR!R#RRR9R$(RRtsectionRRt
subsectionR"((s!/usr/share/authconfig/authinfo.pytreadKerberossd		

""


+
#
c	Csd}ytttid}Wntj
otSXx|D]}|i}|dd!djo|dd!}d}q>n|djo:t|d}|o |id	|i	|q>qq>q>W|i
tS(
NRFRiiRitdefaultstcrypt_styleR*(R2RtCFG_LIBUSERRR:RRRRR R9R$(RRRRRRR"((s!/usr/share/authconfig/authinfo.pytreadLibuser$s&


cCsytttid}Wntj
otSXx|D]}|i}t|d}|djo|idd|q8nt|d}|o7|djo
d}n|id|i	|q8q8q8W|i
tS(	NRtMD5_CRYPT_ENABtyesR*R_tENCRYPT_METHODtDESR](R2RtCFG_LOGIN_DEFSRR:RRRRR R9R$(RRRRR"((s!/usr/share/authconfig/authinfo.pyt
readLogindefs?s&



c	Cs|iptSy|iittiWn)ttifj
o|ii	nXy|ii
t}|_Wnti
j
oy|iid}WnAtj
o5y|iid}Wqtj
otSXnX|ii
|}y|id}Wntij
o
d}nXy|id}Wq]tij
o
d}q]XnXxtiD]\}}yp|i|}|djodi|id}n"|djo|djowjn|i|||Wqjtij
oqjXqjWdS(	Nitid_providert
auth_providerRRR
Rtrfc2307(RuR$t
import_configRtCFG_SSSDRR:RxtParsingErrort
new_configt
get_domaintSSSD_AUTHCONFIG_DOMAINRvt
NoDomainErrortlist_active_domainst
IndexErrortlist_domainst
get_optiont
NoOptionErrorRtsssdopt_mapt	iteritemsRRR(	RRR}tdomnametidprovtauthprovRtoptR((s!/usr/share/authconfig/authinfo.pytreadSSSDWsH


cCst}tdg}|djod|_tS|id|d|tdg}|djotSx%|D]}d|jo
t}qoqoW|o|idtd|n|idtd	|tS(
Nt
use_moduleRFR6it	rm_actions
lockhelper.shR5RR(RRRR6RR$R(RRtlocktsmartcardmodulet	rmactionstaction((s!/usr/share/authconfig/authinfo.pyt
readSmartcard|s"
	

cCsd}d}ytttid}Wntj
o|SXx|D]}|i}t|doqDnt|doqDnt|d}|o |iddi	}qDn|p
|djoqDnt
||}|o
|}qDqDW|i|S(	NRFRt#t;Rt]itglobal(R2RtCFG_SMBRR:RRRRR RSR9(RRtresultRRRR"tres((s!/usr/share/authconfig/authinfo.pytreadWinbindGlobals0
cCsZ|i|}|o@|idjp |idjp
|djotStSndS(NRRt1(RR R$RR(RRttmp((s!/usr/share/authconfig/authinfo.pytreadWinbindGlobalBools3cCsD|id}|o|id||n|id}|o|id||n|id}|o|id||n|id}|o|id||n|ip
d	|_n|id
}|o|id||n|ip
d|_n|id
}|o|id||n|id}|o|id||n|id}|o|id||n|id}|o|id||n|ip
d|_n|id}|djo|id||n|id}|djo|id||ntS(Nt	workgroupR7spassword serverR-RNR,tsecurityR+tusersidmap config * : rangeR8s16777216-33554431swinbind separatorR9stemplate homedirR:stemplate primary groupR;stemplate shellR<s
/bin/falseswinbind use default domainR=swinbind offline logonR>(RRR+R8R<RRR$(RRR((s!/usr/share/authconfig/authinfo.pytreadWinbindsP







cCsd}ytttid}Wntj
otSXx|D]}|i}t|d}|o
|}q>t|d}|ot|do|i	dt
|nt|do|i	dt
|nt|d	}|djot|d}nt|d
}|djo*|djo|i	d||j|qMq>q>W|oddd d!d"d#d$d%f}x?|D]7\}	}
t||
o|i	d|	t
|q}q}W|i	dtt|d|n|i
t
S(&NRFRspasswd:shosts:twinsRKsmdns4_minimal [NOTFOUND=return]RLtnistdnsRNtCompattcompattDBtdbtDirectoriestdirectoriesRthesiodRRpRtNIS3tnisplusRRrRR%Rm(RR(RR	(R
R(sHesiodshesiod(sLDAPRp(sNISR(R
R(sWinbindRr(R2RtCFG_NSSWITCHRR:RRRR0RR$RtboolR9(RRt	nssconfigRRR"tnispostdnspostnssmapRtnssentry((s!/usr/share/authconfig/authinfo.pytreadNSSsF

%&
cCs|idt|tS(NR$(RRR$(RR((s!/usr/share/authconfig/authinfo.pyRsc
Csytttid}WnEtj
o9yttdtd}Wqbtj
otSXnXd}xd|D]\}|idd}t	|djo|d}n|i
}|ddjo||d d	7}qon||}d}|i}d}|idd}t	|d
joqon|\}}|djo.|djo!|d
jo|djoqon|i
do|idd}n|idd}t	|d
joqon|ddjoqon|d}|i
do|d7}n|d}|idd}t	|djoqon|didd\}	t	|d
jo|d}n|	i
do8|idt||o|id||qoqon|	i
do|idt|qon|	i
do|idt|qon|	i
doQ|idt|d|jo|idt|qo|idt|qon|	i
do|idt|qon|	i
d o8|id!t||o|id"||qoqon|	i
d#o|id$t|qon|	i
d%o|id&t|qon|	i
d'o8|id(t||o|id)||qoqon|	i
d*p|	i
d+o8|id,t||o|id-||qoqon|	i
d.o8|id/t||o|id0||qoqon|d
jo|	i
d1ox;tD]3}
|i|
djo|id2|
|qEqEWyP|id3}||d4idd}|id5tt|d|Wnttfj
onXy$tid6|id7t|Wq9tj
o|id7t|q9Xq=n|djo:|	i
d1o&|id8|id9dj|qn|djo:|	i
d1o&|id:|id;dj|qqoqoW|i|io!|io|id!t|n|io"|io|idt|n|ioD|io9|io.|i o#|i!o|i"o
t|_#ntS(<NRs/pam.d/RFRiiis\RiRbRcReRdRRtincludeRtpam_cracklibR_ROtpam_krb5R2tpam_ldapR3t
pam_pkcs11RZtauthinfo_unavailR[tpam_fprintdRftpam_passwdqcRbRPtpam_winbindR\tpam_sssRht
pam_accessRSRRt
pam_mkhomedirtpam_oddjob_mkhomedirRURTt
pam_localuserRcRQtpam_unixR*srounds=iRVs/etc/shadowRWRXtnullokRqt
broken_shadow($R2RtCFG_PAMRR:t
SYSCONFDIRtAUTH_PAM_SERVICERRRR	RRRRR$tpassword_algorithmsR*tindexRRRRR1RR8R9R_RbRqR3R2R\ReRZRY(
RRRtprevlineRRtargststacktcontroltmoduletalgotridxtrounds((s!/usr/share/authconfig/authinfo.pytreadPAMs



 
'
 
*
.

ctCsytitti}y|id|_Wntj
onXy|id|_Wntj
onXy|id|_	Wntj
onXy|id|_
Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_
Wntj
onXy|id|_Wntj
onXy|id	|_Wntj
onXy|id
|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id
|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy0|id}|o
d|_n
d|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_Wntj
onXy|id|_ Wntj
onXy|id|_!Wntj
onXy|id|_"Wntj
onXy|id|_#Wntj
onXy|id |_$Wntj
onXy|id!|_%Wntj
onXy|id"|_&Wntj
onXy|id#|_'Wntj
onXy|id$|_(Wntj
onXy|id%|_)Wntj
onXy|id&|_*Wntj
onXy|id'|_+Wntj
onX|i,d(|_-|i,d)|_.|i,d*|_/|i,d+}|t0jo
||_n|i1Wnt2j
onXt3S(,NtUSEAFStUSEAFSKERBEROStUSEDBtUSECRACKLIBt	USEDBBINDt
USEDBIBINDtUSEDIRECTORIEStUSEEPSt	USEHESIODt
USEHESIODBINDtUSEKERBEROStUSELDAPtUSELDAPAUTHtUSESMARTCARDt
USEFPRINTDtFORCESMARTCARDtUSELDAPBINDtUSEMD5R_R]tUSENISt
USENISPLUStUSEODBCBINDtUSEOTPtUSEPASSWDQCt	USESHADOWt
USEWINBINDtUSEWINBINDAUTHtUSESSSDtUSESSSDAUTHtUSELOCAUTHORIZEtUSEPAMACCESStUSEMKHOMEDIRt
USESYSNETAUTHtFORCELEGACYtCACHECREDENTIALStUSEIPAV2tIPADOMAINJOINEDt
IPAV2NONTPtIPAV2SERVERtIPAV2DOMAINt
IPAV2REALMtPASSWDALGORITHM(4RRRtCFG_AUTHCONFIGRtgetBoolValueR]RR^R?R_RIRHR@R`RGRFR2R1R3RZRfR[RER*RDtenableNISP3RBRaRbRWRAR\RMReRcRSRURdRiR#R4RmRnRRjRkRlR+R9R:R$(RRt	enableMD5R2((s!/usr/share/authconfig/authinfo.pyt
readSysconfigsF



cCsytitti}Wntj
otSX|id}|o
||_n|i	|io|i
d|i|ntS(Nt	NISDOMAINR(RRRtCFG_NETWORKRR:RRR(R9RR$(RRRR((s!/usr/share/authconfig/authinfo.pytreadNetwork\s


cCsm|i}t|i|jpt|i|jotSx)|iD]}|i||otSqGWtS(N(RRR%RhR$RRR(RR&t
sssdsupportedtgroup((s!/usr/share/authconfig/authinfo.pytdiffersps,
	cCst|i|_t|i|_t|i|_t|i|_|i|i|_|idjo$|io|ii	|_qn|i
i|_
|idjo
t|_ndS(Ntads(RR-RjRRRRR+R,tupperR*R R#RR$(R((s!/usr/share/authconfig/authinfo.pytupdates
cCs|i}|i|i||i||i||i||i||i||i||i	||i
o|io|i|n|i
||i||i
p
|io|i|n|i||i||idS(N(tcopyRcRRRR5RRRfRR%RhRRRRRRl(RR((s!/usr/share/authconfig/authinfo.pyRs&












cCs%ti|}d|_d|_|S(NRF(RmRrRs(RR((s!/usr/share/authconfig/authinfo.pyRms		cCs0tti|it|io|itS(N(Rt	CFG_CACHERRpRR$R%R$(R((s!/usr/share/authconfig/authinfo.pyRscCstti|iytitti}Wntj
otSX|i	d|i
|i	d|i|id|i
tS(NRRi(RRRRpRtrcreateRR:RtsetValueR&R'RR9R$(RR((s!/usr/share/authconfig/authinfo.pyRys

c	Cst}d}d}tti|iztttid}x|iD]}|i	}t
|d}|o|idd}t|djoqIn|d|i
jo%|d|ijo||7}qIn|o|i
o|d|i
7}|iid}|io|d7}||d7}n|d	7}|d
7}|d}x+|D]#}|o|d|d
7}qVqVWt}qqIt|dok|o_|i
oT|ioJ|iid}x+|D]#}|o|d|d
7}qqWt}qqI||7}qIW|p|iid}|i
oZ|d|i
7}|do&|d7}||d7}|d}n|d	7}|d
7}nx/|D]#}|o|d|d
7}qqWn|i|i||iWdy|o|inWntj
onXXtS(
NRFiR}iisdomain R
s server s
 broadcasts
s	ypserver R(RRRRRRpRRRRRRRRR(R)R$RRRRR9R:(	RtwrittenRRHRtlsR"tserversR
((s!/usr/share/authconfig/authinfo.pyRzs~
(










cCst}t}	t}
t}t}t}
d}d}|io*|idjo|idjo
d}nd}z&t|d}xp|iD]e}|i}t||oW|	oK|ioA||d7}|di|ii	d7}|d	7}t
}	qqt||o |io|d
|7}qqt||oE|o9|io/||d7}||i7}|d	7}t
}qq|o[t|doK|
p@|d7}|io|d
7}n|d7}|d	7}t
}
qq|oQt|doA|o5|i
o+|d7}||i
7}|d	7}t
}qqt|doO|
pD|o|d7}n|d7}|d|i7}|d	7}t
}
qq|o=t|do-|p"|d|7}|d	7}t
}qq||7}qW|	oE|io;||d7}|di|ii	d7}|d	7}n|o3|io)||d7}||i7}|d	7}n|oB|
o:|d7}|io|d
7}n|d7}|d	7}n|o7|o/|i
o%|d7}||i
7}|d	7}n|
p>|o|d7}n|d7}|d|i7}|d	7}n|o$|o|d|7}|d	7}n|i|i||iWdy|o|inWntj
onXXt
S(NRFR]R^R_tcryptiRR
s
RRsssl RtnoRsnss_schema t
tls_cacertdirt
TLS_CACERTDIRtpam_passwords
pam_password (RRR*RRRRRRRR$RRRR!RRRRR9R:(RR;RRRt	writepadltwriteschematwritepamtwrotebasedntwroteservertwrotessltwroteschemat	wrotepasstwrotecacertdirRRHtpassalgoRRr((s!/usr/share/authconfig/authinfo.pyt
writeLDAP2	s
























cCstiittio>tti|i|ittidddt	t	t	ntiitt
io>tt
i|i|itt
idddt	t	tntiittio>tti|i|ittidddt	tt	ntiitt
io>tt
i|i|itt
idddt	ttntti|i|ittidddttt}|S(NRRRtURItHOSTtBASE(R1RRRRRRRpRR$RRRRtCFG_OPENLDAP(RR((s!/usr/share/authconfig/authinfo.pyR{	s(cCsWd}|idjo	|dS|idjp|idjo||iS|dSdS(Nscrypt_style = R_R`Ratdes(R*(RR((s!/usr/share/authconfig/authinfo.pyt
cryptStyle	s	 cCst}t}d}d}d}tti|izPtttid}x|iD]}|i	}|djo1t
|do!||id7}t}qUnt
|doh|djo&|o||id7}t}n|di
ddd	}|djo
t}qn||7}qUW|p.|d
7}||id7}t}t}n|i|i||iWdy|o|inWntj
onXXtS(NRFiRRs
RiRis[defaults]
(RRRRRRpRRRRRRR$RRRRR9R:(Rtwrotecryptstylet
wrotedefaultsRRRHRRr((s!/usr/share/authconfig/authinfo.pyR|	sJ






c
Cst}t}d}d}d}tti|i|idjo
d}nd}|idjp|idjo
d}nd|iid	}zttti	d
}xu|i
D]j}|i}	t|	do||7}t
}qnt|	do||7}t
}qn||7}qW|p||7}n|p||7}n|i|i||iWdy|o|inWntj
onXXt
S(
NRFR_sMD5_CRYPT_ENAB yes
sMD5_CRYPT_ENAB no
R]R^sENCRYPT_METHOD DES
sENCRYPT_METHOD s
iRR(RRRRRRpR*RkRRRRRR$RRRR9R:(
Rt
wrotemd5crypttwroteencmethodRRRHtmd5cryptt	encmethodRRr((s!/usr/share/authconfig/authinfo.pyR}	sN
 





cCs
t}t}t}t}t}t}t}t}t}	t}
t}t}t}
t}t}d}d}d}d}tti|i|io|io
|i}nE|ip
|i	o'|i
djo|io
|i}n
|i}|i|ijo
t}nzK	t
ttid}x5|iD]*}|i}|djo`|oY||ijoIt|do9|p+|io|t|i7}nt}q+q+n|djop|i
djo`|oY||ijoIt|do9|p+|io|t|i7}nt}q+q+n|djo`|oY||ijoIt|do9|p+|io|t|i7}nt}q+q+n|djo|o|idd}t|djo||7}q+n|d}|io||ijo
t}n|io||ijo
t}q5n|djo|ot|d	o|io\||ijoL|p|t|i7}t}n|p|t|i7}t}qn|io8||ijo(|p|t|i7}t}qnd}n|d
joNt|do>|o0|
o(|d7}||7}|d
7}t}
q+q+n|d
jo[t|doK|p=|d7}|tt|ii7}|d
7}t}q+q+n|d
jo[t|doK|p=|d7}|tt|ii7}|d
7}t}q+q+n|djoW|ioMt||iipt|d|iio||7}t}
q+nt|do|djo;|io1|o)|t|i|i|i7}t}n|djo8|io.|o&|t|i|id7}t}n|d
jo|o0|
o(|d7}||7}|d
7}t}
n|p=|d7}|tt|ii7}|d
7}t}n|p=|d7}|tt|ii7}|d
7}t}qn|djo|iov|
on|d|ii7}|d|i7}|d
7}|d|ii7}|d|i7}|d
7}t}
qn|oI|djo
t}q|d
jo
t}	q|djo
t}qn|diddd}|djo
t}qK|d
jo
t}qK|djo
t}qKn||7}q+W|	p|p|d7}n|o*|
o"|d7}||7}|d
7}n|p7|d7}|tt|ii7}|d
7}n|p7|d7}|tt|ii7}|d
7}q&	n|pj|p|d7}n|p#|t|i|i|i7}n|p |t|i|id7}q	n|p|p|d7}n|iop|
oh|d|ii7}|d|i7}|d
7}|d|ii7}|d|i7}|d
7}q1
n|i|i ||i!Wdy|o|i"nWnt#j
onXXtS(NRFRjiRRIRiiRRRs default_realm = s
Rs dns_lookup_realm = Rs dns_lookup_kdc = tdomain_realmR|RRs = s .Rs[libdefaults]
s	[realms]
s[domain_realm]
($RRRRRRpR2R!RAR\R+R,R$RRRRRRRJR-RRMRRRRR.R R/RORRRR9R:(Rt
wroterealmtwrotekdct
wroteadmint
wrotesmbrealmtwrotesmbkdctwroterealmstwrotelibdefaultstwroterealms2twrotelibdefaults2twrotedefaultrealmt
wrotednsrealmtwrotednskdctwroteourdomrealmt
wrotedomrealmtwrotedomrealm2RRRRHtdefaultrealmRRrR"((s!/usr/share/authconfig/authinfo.pyR~
s

$
	

$

$ 

$




$











0






























$


cCsyy|i|d}Wntij
o
d}nX||jo2|djo|i|n|i||ndS(Nt	_provider(RRxRRtremove_providertadd_provider(RR}tnewprovidertsubtypetprov((s!/usr/share/authconfig/authinfo.pytchangeProviders

cCs|iptStti|i|iotS|ipZ|iptSy|ii	t
|_Wqtij
o|ii
t
|_qXn|i}t}|iot}|i|ddn|io*|i|dd|i|ddn5|io*|i|dd|i|ddnxtiD]\}}yt||}|djot|}nt|tjo|i||nMt|tjo,|o|i||q|i|n|i|WqAtij
oqAXqAW|ii||o|ii|in|ii |iy|ii!tti"Wnt#j
onXtS(NRptidRiRbtchpassR($RuR$RRRRpR4RvR%t
new_domainRRxtDomainAlreadyExistsErrorRRR1RR2R3RRRRttypeRt
set_optionRt
remove_optionRtsave_domaintactivate_domaintget_nametdeactivate_domainRRR:(RR}tactivateRtoptionR((s!/usr/share/authconfig/authinfo.pyRs^



	




	cCs|idjotStti|id}d}d}|itdjo|d7}|d7}d}nt	d|id|d	|gt
id
dd|tS(
Ns/usr/sbin/gdm-safe-restarttnoneRs ,/etc/pkcs11/lockhelper.sh -locks&,/etc/pkcs11/lockhelper.sh -deactivatetlock_screensuse_module=sins_action=s
rm_action=sgconftool-2 --directs= --config-source=xml:readwrite:/etc/gconf/gconf.xml.mandatorysH -s /desktop/gnome/peripherals/smartcard/removal_action %s --type string(R6RR$RtCFG_PAM_PKCS11RRpR5RRR1R(RtinsacttrmactR((s!/usr/share/authconfig/authinfo.pyRJs 



cCsd}|d7}|dtidd7}|d7}|d7}|d7}|io+|d7}||i7}|d7}t}n|io7|d7}||iid	d
7}|d7}t}n|io+|d7}||i7}|d7}t}n|io+|d7}||i7}|d7}t}n|io+|d
7}||i7}|d7}t}n|i	o+|d7}||i	7}|d7}t}n|i
o+|d7}||i
7}|d7}t}n|io+|d7}||i7}|d7}t}	n|io+|d7}||i7}|d7}t}
n|d7}|t
t|ii7}|d7}|d7}|t
t|ii7}|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 = R
Rs   realm = s   security = s   idmap config * : range = s   winbind separator = s   template homedir = s   template primary group = s   template shell = s    winbind use default domain = s   winbind offline logon = s#--authconfig--end-line--
(ttimetstrftimeR7R$R-RR,R+R8R9R:R;R<RRR=R R>(RRHtwroteworkgrouptwroteserversRt
wrotesecuritytwroteidmaprangetwroteseparatortwrotetemplatehtwrotetemplateptwrotetemplates((s!/usr/share/authconfig/authinfo.pyt
paramsWinbind_sx





















































cCs@d}x)|D]!}t||od}Pq
q
W||7}|S(NRFR(RS(RRRrRRHR((s!/usr/share/authconfig/authinfo.pytcheckLineWinbinds	
c
Cs:t}t}d}tti|idddddddd	d
ddd
ddg}d}d}ztttid}x>|iD]3}|i	}|o!t
|do
t}qqnt
|do
t}qnt
|dpt
|do||7}qnt|d}	|	o^d|	joQ|	i
ddi}||7}|djo||i7}t}qqn|djo ||i|||7}qn||7}qW|p|d7}||i7}n|i|i||iWdy|o|inWntj
onXXtS(NRFRspassword serverRNRs
domain logonss
domain masters	idmap uids	idmap gidswinbind separatorstemplate homedirstemplate primary groupstemplate shellswinbind use default domainswinbind offline logonis#--authconfig--end-line--s#--authconfig--start-line--RRRRiRs	[global]
(RRRRRpRRRRRRR$RRR RRRRRR9R:(
RtauthsectiontwroteauthsectionRRRRHRRrR"((s!/usr/share/authconfig/authinfo.pyRsf		

 







cCs_d}d}d}t}t}t}t}t}t}	t}
d}d}tti|iztttid}|io|d7}n|d7}|}
|i	o|d7}n|i
o|d7}n|io|d7}n|io|d7}n|i
p|ip
|io|d	7}|
d	7}
n|io|d
7}n|io|io|d7}n|io|d7}n|io|d
7}n|io|d7}n|io|d7}n|}|io|idd}n|}|io|d7}n|io |io|idd}n|id	d}|d7}|io|d7}n|io|d7}n|io|d7}n|io|d7}n|io|d7}n|ip|d7}nx|iD]}|i}t|do3|p(|d7}||7}|d7}t}qqt|do3|p(|d7}||7}|d7}t}qqt|do3|p(|d7}||7}|d7}t}qqt|do3|p(|d 7}||7}|d7}t}qqt|d!o3|p(|d"7}||7}|d7}t}qqt|d#o3|	p(|d$7}||7}|d7}t}	qqt|d%o3|
p(|d&7}||
7}|d7}t}
qq||7}qW|p"|d7}||7}|d7}n|p"|d7}||7}|d7}n|p"|d7}||7}|d7}n|p"|d 7}||7}|d7}n|p"|d"7}||7}|d7}n|	p"|d$7}||7}|d7}n|
p"|d&7}||
7}|d7}n|i |i!||i"Wdy|o|i#nWnt$j
onXXtS('NRFis dbs filess directoriess	 odbcbinds nispluss niss ssss	 ldapbinds ldaps hesiodbinds hesiods dbibinds dbbindtfilesRs winbindRmRps  mdns4_minimal [NOTFOUND=return]s dnss winsspasswd:spasswd:    s
sshadow:sshadow:    sgroup:sgroup:     s	netgroup:snetgroup:  s
automount:sautomount: shosts:shosts:     s	services:sservices:  (%RRRRRRpRRR?R@RBRCRDRMR%R4RER1RFRGRHRIRJRRARLRNRKRRRR$RRRR9R:(Rtuserstnormalthoststwrotepasswdt
wrotegrouptwroteshadowt
wrotenetgrouptwroteautomountt
wrotehostst
wroteservicesRRHtservicestnetgroupRRr((s!/usr/share/authconfig/authinfo.pyRs&


























































c	Cst|t}|t}|t}d}|o|od}|djoY|djoL|o-|io
t}nt}dit}q|io
t	}qn|djo+|djo|i
o
t}qt}n|djo2|djo%|t
jo|io
t}qn|djo*tid	td
ftio
d
}n|d|||f7}|o_||ijoOtid	t|ftio.|itdt|ft|i|<n|d
jo
|i}n|djo
|i}n|djo
|i}n|djo
|i}n|djp
|d
jo
|i}n|o"|todi|t}n|djo|io|d7}n|djo|djo|io%|idjo|d|i7}n|io|d|i7}n|i o|d7}n|i!o|d7}n|i"o|d7}q_n|djo|i"o|d7}qn|djo:|i#p|i$p|ip
|i%o|d7}qqn|o|d|7}qn|d7}|S(NRFRhRbRRiRcRgR{s%s/pam_%s.sotoddjob_mkhomedirs%-12s%-13s pam_%s.sos_Authentication module %s/pam_%s.so is missing. Authentication process might not work correctly.RvRwRuRtRrs
 cached_loginRlReR]s rounds=s shadows niss nulloks broken_shadows
(&t
pam_stackstSTACKtLOGICtNAMER2tLOGIC_FORCE_PKCS11_KRB5tLOGIC_FORCE_PKCS11Rtargv_force_pkcs11_authtLOGIC_PKCS11_KRB5RZtLOGIC_IGNORE_AUTH_ERRtLOGIC_IGNORE_UNKNOWNtLOGIC_SKIPNEXTtLOGIC_SKIPNEXT3R1RttAUTH_MODULE_DIRtX_OKtmodule_missingRoRR$RORPRQRRRTtARGVR>R*RVRWRDRXRYR3R\(	RR1t
forcescardtwarnR/tlogicRRHR.((s!/usr/share/authconfig/authinfo.pytformatPAMModules







'

 


















c	Cstii|}tii|}|o|p|o]|oUyti|Wntj
onXyti||Wqtj
oqXndS(N(R1RRtislinkR
R8tsymlink(RRRRR((s!/usr/share/authconfig/authinfo.pytlinkPAMServicescCsxxttttgD]d}td|}tii|}tii|}|o|p|o|ot	|_
dSqWdS(Ns/pam.d/(R*tPASSWORD_AUTH_PAM_SERVICEtFINGERPRINT_AUTH_PAM_SERVICEtSMARTCARD_AUTH_PAM_SERVICER)R1RRRRRg(RRRR((s!/usr/share/authconfig/authinfo.pytcheckPAMLinked
s	c
Cshd}d}t|i|iztt|id}|d7}|d7}|d7}|d7}|i}|i}|i}	t	}
|t
jo
t}
n|tjo
t}	n|t
jot}t}ng}x!t|D]}|o#|t|tjo|d7}n|}|tp|io|tdjp|io|td	jp|io|td
jpf|io|tdjpK|io+|io#|tdjo|ttjp|ioK|oD|tdjo|ttjp|td
jo|ttjp|io|io|tdjp|o3|ttjo"|tdjo|ttjp^|o|tdjpF|o|o|tdjp'|	o|tdjp|io|tdjp|io|tdjp|i o|tdjp|i!p|ip
|i"o|tdjp|i#o|tdjpt|i$o|tdjpY|i%o|tdjp>|i&oP|ttjo?|tdjo.|tt'jo||i(|||
7}qqW|i)|i*||i+Wdy|o|i,nWnt-j
onXX|i.|t/d|tS(NRFis
#%PAM-1.0
s# This file is auto-generated.
s/# User changes will be destroyed the next time sauthconfig is run.
s
Rnsafs.krbRvtepsRiRjRpRgRhRsRkRqRwRrRmRuRtR{s/pam.d/(0RRRRpRRR[RZRfRtSTANDARDR$tFINGERPRINTt	SMARTCARDtpam_modulesRt	MANDATORYR]RR^R_R`R2RhRtargv_krb5_sc_authtAUTHR3RRRaRbR\ReR4RcRSRURdtLOGIC_REQUISITERRRRR9R:RR)(
Rtservicetcfgtcfg_basenametcfg_linkRRHR[RZRfRt
prevmoduleR1((s!/usr/share/authconfig/authinfo.pytwritePAMService
s|



			





&""&"/"!

cCseh|_|itttt|itttt	|it
ttt
|itttttS(N(RRRR(tAUTH_PAM_SERVICE_ACR*t
PASSWORD_ONLYtCFG_PASSWORD_PAMtPASSWORD_AUTH_PAM_SERVICE_ACRRtCFG_FINGERPRINT_PAMtFINGERPRINT_AUTH_PAM_SERVICE_ACRRtCFG_SMARTCARD_PAMtSMARTCARD_AUTH_PAM_SERVICE_ACRR$(R((s!/usr/share/authconfig/authinfo.pyRX
s	cCstti|iytitti}Wntj
otSX|i	d|i
|i	d|i|i	d|i|i	d|i
|i	d|i|i	d|i|i	d|i|i	d|i|i	d	|i|i	d
|i|i	d|i|i	d|i|i	d
|i|id|i|idd|i	d|i|i	d|i|i	d|i|i	d|i|i	d|i|i	d|i|i	d|i |i	d|i!|i	d|i"|i	d|i#|i	d|i$|i	d|i%|id|i&|id|i'|id|i(|i)d|i*t+S( NR9R8R>RARHRLRNRPR@RBRCRERDR^RGRMRORQRRRSRTRURVRWRXRYRZR[R\R]i(,RR_RRpRRoRR:RtsetBoolValueR_R?RGR1RDRbRARMR2R3RZR[RfRpR*RRWR\ReRcRSRURdRiR#R4RmRnRjRkRlRR9R$(RR((s!/usr/share/authconfig/authinfo.pyR`
sL

cCsstti|iytitti}Wntj
otSX|i	d|i
|id|it
S(NRdi(RReRRpRRoRR:RRpRRR9R$(RR((s!/usr/share/authconfig/authinfo.pyR
s

cCs|i}|i|_|_|io5|io*|io|o|iidq_nt}t|djo!|i	|jo|d|_	ndS(NR0i(
R%RRhRMReRRRRR6(Rtoldimplicittmodules((s!/usr/share/authconfig/authinfo.pytprewriteUpdate
s		#cCs|i|i|itdt|_y|i}|o
|i}|o
|i}|i	o|o
|i
}n|ip
|io|o
|i
}n|ip|io'|idjo|o
|i}n|io|o
|i}n|io|o
|i}n|ip
|io|o
|i}n|ip
|io|o
|i}n|o
|i}|o
|i}|o
|i}|o
|i}Wntt fj
ot!SX|S(Ns/lastRj("RlRtsetupBackuptPATH_CONFIG_BACKUPSR$RwR|R}RRGRyR1R3R{R2R\R+R~RZRRDRzRARR%RhRRRRRR8R:R(RR((s!/usr/share/authconfig/authinfo.pyR
s>

	




cCs|i|i|i|itdt}yKxD|iD]9}|i||o t|_|o
|i	}qBqBWWnt
tfj
otSX|S(Ns/last(
RRlRRR
R$RRRwRR8R:R(RRRRh((s!/usr/share/authconfig/authinfo.pytwriteChanged
s



	cCsd}d}g}g}tidgtidgtidgtidgg}ti}|pdS|idp|d7}n||id}d|}ti|titi}xL|D]D}|i	tijo+|i
iid|_
t||_qqWd|}ti|titi}|p)d|}ti|titi}nxC|D];}|i	tijo"|i
i|_|ioPqqgqgW|iold|i}ti|titi}x|D]}|i	tijoh|i
iid}|i
io|d	|i
i7}n|io|id
|7_q`||_qqWd|i}ti|titi}x|D]}|i	tijoh|i
iid}|i
io|d	|i
i7}n|io|id
|7_q||_qqWnx|D]}|d|}ti||d
ti}xY|D]Q}|i	tijo8|i|jo(d|d|_|id|_PqZqZWq#WdS(NRFthstnsR|s
_ldap._tcps
_kerberos.t	_kerbeross_kerberos._udp.R)R
s_kerberos-adm._udp.ii(t	dnsclienttDNS_C_INtDNS_C_HStsockettgetfqdntendswithR*Rt	DNS_T_SRVtdns_typetrdataRR	RR~Rt	DNS_T_TXTtdataR!tportRRt	DNS_T_SOAtdns_nameR&R'(RthostnametqnametresultsRRR}th((s!/usr/share/authconfig/authinfo.pytprobe
s











cCsdt|iGHdGHdt|iGHdt|iGHdt|iGHd|iGHd|iGHdt|iGHd	t|iGHd
|i	GHd|i
GHdt|iGHd
|iGHd|i
GHdt|iGHdt|iGHd|iGHd|iGHd|iGHd|iGHd|iGHd|iGHdt|iGHdt|iGHdt|iGHdt|iGHdGHdt|iGHd|iGHdt|iGHd|iGHd t|iGHd!|iGHd"t|i GHd#|i!GHd$t|i"GHd	t|iGHd
|i	GHd|i
GHd%|i#pd&GHd't|i$GHd(t|i%GHd)|i&GHd*|i'GHd+t|i(GHd,t|i)GHd|iGHd|iGHd|iGHd|iGHd-t|i*GHd.t|i+GHd/t|i,GHd0t|i-GHd1|i.od2pd3GHd4|i/GHd5|i0GHd6|i1GHd7t|i2|i3fGHd8t|i4|i5fGHd9t|i6|i7fGHd:t|i8|i9fGHd;t|i:|i;fGHd<t|i<GHdS(=Ns
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 %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"Rspam_pkcs11 is %ss# use only smartcard for login is %ss smartcard module = "%s"s  smartcard removal action = "%s"spam_fprintd 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 %ssIPAv2 is %ssIPAv2 domain was %sjoinedsnot RFs IPAv2 server = "%s"s IPAv2 realm = "%s"s IPAv2 domain = "%s"spam_cracklib is %s (%s)spam_passwdqc is %s (%s)spam_access 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(=RR$RJR?RGR&R'R1RRRRDR)RRCRAR7R-R+R,R<R8RMRKRLRNRWR*R2R!R.RR/RR3RRZR[R6R5RfR\ReR#RiR4RmRjRlRkR_RORbRPRSRRRURTRcRQRd(R((s!/usr/share/authconfig/authinfo.pyt	printInfo'scCsF|iotidtidntidtidtS(Ns/usr/sbin/pwconvs/usr/sbin/grpconvs/usr/sbin/pwunconvs/usr/sbin/grpunconv(RWR1RR$(R((s!/usr/share/authconfig/authinfo.pyttoggleShadowns



cCs)|ip
|io|io|iidddidddiddd}|i}|i}|p
d}n|djo|djodSd|od	pd
||odpd
||if}|otii	d|n|i
ot||d
|i
q%ti
|ndS(NR
iiRs	RjR}s!/usr/bin/net join %s%s %s%s -U %ss-w RFs-S s[%s]
ssword:(RAR\RrR-RR7R+RRRRsRR1R(RRRR}tprotocoltcmd((s!/usr/share/authconfig/authinfo.pyt
joinDomainxs"9		


c
CsL|io>|i}|i}|i}|i}|i}|io
d}nd}td|odpd||odpd||odpd||odpd|||odpdf
}|oti	i
d	|n|iot||d
|i}	nti
|}	|	djo
t|_qH|itdndS(
Ns-NRFs! --noac %s%s %s%s %s%s %s%s %s %ss	--domain=s	--server=s--realm=s--principal=s-Ws[%s]
ssword:isKIPAv2 domain join was not succesful. The ipa-client-install command failed.(R4RjRkRlRrRsRntPATH_IPA_CLIENT_INSTALLRRRRR1RR$RmRoR(
RRRR}RNt	principalRetnontpR(R((s!/usr/share/authconfig/authinfo.pyt
joinIPADomains0
					




cCs|i|i}t|i|i||t|ip|itt	d||t|i
p|ip|it
td||t|ip
|io|i
ttd||t|ittd||t|ittd||t|ittd||t|ittd||t|it t!d|||i"o=t#i$d	t%d
ft#i&ott't(t)d||nt*|i+||dS(NRrtsssdtnslcdtdbbindtdbibindt
hesiodbindtldapbindtodbcbinds%s/pam_%s.soRtoddjobd(,R&RwRRDRRRAR\tPATH_WINBINDtPATH_WINBIND_PIDR%RhR4t	PATH_SSSDt
PATH_SSSD_PIDR1R3t
PATH_NSLCDtPATH_NSLCD_PIDRItPATH_DBBINDtPATH_DBBIND_PIDRHtPATH_DBIBINDtPATH_DBIBIND_PIDRFtPATH_HESIODBINDtPATH_HESIODBIND_PIDREt
PATH_LDAPBINDtPATH_LDAPBIND_PIDRBt
PATH_ODBCBINDtPATH_ODBCBIND_PIDRUR1RtRRR$tPATH_ODDJOBDtPATH_ODDJOBD_PIDRR$(RRR((s!/usr/share/authconfig/authinfo.pytpostsF




	
	
	
	
	
cCs|ip
|iogyti|iWnBtj
o6\}}|tijoti|idqmnXt	|iSt
S(Ni(R1R3R1RRR8R?tENOENTRRR(RRR((s!/usr/share/authconfig/authinfo.pyttestLDAPCACertsscCsJ|ip
|io2|ipd|ijotid|indS(Nsldaps:s/usr/sbin/cacertdir_rehash (R1R3RRR1RR(R((s!/usr/share/authconfig/authinfo.pytrehashLDAPCACertsscCs|iptS|iyWti|i}t|idtd}|i|i	|i
|i
Wn0ttt
fj
o|itdtSX|itS(NRis Error downloading CA certificate(RtRRJturllib2turlopenRERtLDAP_CACERT_DOWNLOADEDRRR9R:R8RRoRRKR$(Rtreadftwritef((s!/usr/share/authconfig/authinfo.pytdownloadLDAPCACerts



c
Cs|ddjotd|}n||_t|pmySti|}x=|D]5}yti|d|WqRtj
oqRXqRWWqtj
oqXndS(NiRs/backup-(R
RpRR1RR
R8(RRRR;((s!/usr/share/authconfig/authinfo.pyRs	

cCsA|i|t}x'tD]}|i|io|}qW|S(N(RR$RRRp(RRRR((s!/usr/share/authconfig/authinfo.pyt
saveBackups
cCsT|ddjotd|}nt}x$tD]}|i|o|}q0W|S(NiRs/backup-(R
R$RR(RRRR((s!/usr/share/authconfig/authinfo.pyt
restoreBackup	scCs|itdS(Ns/last(RSR
(R((s!/usr/share/authconfig/authinfo.pytrestoreLasts(CRRRRRRRRRRRRRRRRRRRRRR5RcRfRiRlRRmRRyRzRR{RR|R}R~RRRRRRRRRRRRRRRRRR$R%R&R)R-RHRJRKRQRRRRSRT(((s!/usr/share/authconfig/authinfo.pyRs					*		9			A			%		 	
	.	.											U	u		
	5	6		
	<		A	
	I		J		
	H		+		
	"		S	G	
			&						(((((RR1RmR4RRRRRRRR?RLRRt
subprocessRtgettexttlgettextRRxtImportErrorRR)R*RRRRRRRRRtglobalstLIBDIRRtPATH_PWCONVRRRR:R;R<R=R>R?R@RARBRCRDRER6R7R8R9RRRFRGtPATH_SEBOOLt
PATH_SCEVENTDtPATH_SCEVENTD_PIDRtPATH_LIBNSS_DBtPATH_LIBNSS_LDAPRRtPATH_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_SSStPATH_WINBIND_NETR*RRNR
tPATH_SSSD_CONFIGtLOGIC_REQUIREDRtLOGIC_SUFFICIENTtLOGIC_OPTIONALRRtLOGIC_PKCS11RRRRRRRRRRR!R#R(R0RARERJRMRORStargv_unix_authtargv_unix_passwordt
argv_afs_authtargv_afs_passwordtargv_cracklib_passwordtargv_passwdqc_passwordt
argv_eps_authtargv_eps_passwordtargv_fprintd_authtargv_pkcs11_authRtargv_krb5_authRtargv_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_sessionR+trangeRtACCOUNTtSESSIONtPASSWORDRRRRRRRRRRt_[1]RRR$RR~tDEFAULT_DNS_QUERY_SIZERRRRRRRRRRRRRRRR	RRRRRRRRtCFG_KRBRRRRnR(RRRR_ReRRRRRR(((s!/usr/share/authconfig/authinfo.pyt<module>s
	















																																									-																																																																																																																																																																																																																																																																																					+			G					G		7Q


haha - 2025