��
+>Tc@soddkZddkZddkZddkZddkZddkZeiZddkl Z l
Z
ddkZeiei
d�d�Zed�oddkZnde fd��YZde
fd ��YZd
fd��YZdefd
��YZedjo]eieiei�eid�ed�o
e�Zn
e�Zeiei��ndS(i����N(tOptionParsertIndentedHelpFormattertcCstidi|�djS(Ni(tsystargvtfind(tname((s#/usr/share/authconfig/authconfig.pytrunsAs#ssauthconfig-tuitUnihelpOptionParsercBseZdd�ZRS(cCs�|djo
ti}nti�}t|dd�}|p
|djo
|}n|i|i�i|�i |d��dS(Ntencodingtasciitreplace(
tNoneRtstdouttlocaletgetpreferredencodingtgetattrtwritetformat_helptdecodetencode(tselftfiletsrcencodingR ((s#/usr/share/authconfig/authconfig.pyt
print_help*s
N(t__name__t
__module__RR(((s#/usr/share/authconfig/authconfig.pyR)stNonWrapFormattercBseZd�ZRS(cCsg}|i|}|i|id}t|�|jo#d|id|f}|i}n9d|id||f}d|id||f}d}|i|�|io-|i|�}|id|d|f�n#|ddjo|id�ndi|�S(Nis%*s%s
Rs %*s%-*s ii����s
(toption_stringst
help_positiontcurrent_indenttlentappendthelptexpand_defaulttjoin(Rtoptiontresulttoptst opt_widthtindent_firstt help_text((s#/usr/share/authconfig/authconfig.pyt
format_option4s
(RRR*(((s#/usr/share/authconfig/authconfig.pyR3st
AuthconfigcBs}eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�ZRS(
cCsCt|_t|_t|_t|_t|_t|_d|_dS(Ni(tFalset nis_availtkerberos_availt
ldap_availt
sssd_availtcache_availt
fprintd_availtretval(R((s#/usr/share/authconfig/authconfig.pyt__init__Xs cCsdS(Nt
authconfig((R((s#/usr/share/authconfig/authconfig.pytmoduleascCs$tiid|i�|f�dS(Ns%s: %s
(RtstderrRR6(Rterror((s#/usr/share/authconfig/authconfig.pyt
printErrordscCsyd}d}x\|D]T}|djo|d7}n|o|t|�d7}n||7}|d7}qW|d7}|S(Nit<t|t=it>(tstr(RtltaddidxtidxR!titem((s#/usr/share/authconfig/authconfig.pytlistHelpgs
c Cstd�|i�}|i�djo|d7}nt|dtdt��}|idddd d td
��|idddd
d td��|iddd
d td��|idddd
d td��|iddd
d td��|idd|itit�d td��|iddd
d td��|iddd
d td��|iddtd�d td��|id dtd!�d td"��|id#dd
d td$��|id%dd
d td&��|id'dd
d td(��|id)dd
d td*��|id+dtd!�d td,��|id-dtd.�d td/��|id0d1dd
d td2��|id3d4dd
d td5��|id6dd
d td7��|id8dd
d td9��|id:dtd;�d td<��|id=dd
d td>��|id?dd
d td@��|idAdd
d tdB��|idCdd
d tdD��|idEdtdF�d tdG��|iti �t
�}|idHd|d tdI��|idJdd
d tdK��|idLdd
d tdM��|idNdd
d tdO��|idPdd
d tdQ��|idRdtd!�d tdS��|idTdtd!�d tdU��|idVdtdW�d tdX��|idYdd
d tdZ��|id[dd
d td\��|id]dd
d td^��|id_dd
d td`��|idadd
d tdb��|idcdd
d tdd��|idedd
d tdf��|idgdd
d tdh��|ididdjd tdk��|idldtdW�d tdm��|idndtdo�d tdp��|idqdtdr�d tds��|idtdudvdtdw�d tdx��|idyddzd td{��|id|dd}d td~��|iddd�d td���|id�dd�d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd�d td���|id�dd
d td���|id�dd
d td���|id�dtd�d td���|id�dtdW�d td���|id�dtdo�d td���|id�dd
d td���|id�dd
d td���|id�dd�d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd�d td���|id�dd�d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|id�dd
d td���|i�d�joB|id�dd
d td���|id�dd
d td���n#|id�d�dd
d td���|id�dd
d td���|id�dd
d td���|id�dtd��d td���|id�dtd��d td���|id�dd
d td���|i�\|_}|o$|i
td���tid��n|i�d�jo}|iioo|iioa|iioS|iioE|iio7|iio)|iio|i�tid��ndS(�Nsusage: %s [options]R5se {--update|--updateall|--test|--probe|--restorebackup <name>|--savebackup <name>|--restorelastbackup}tadd_help_optiont formatters-hs--helptactionR!sshow this help message and exits--enableshadows--useshadowt
store_trues$enable shadowed passwords by defaults--disableshadows%disable shadowed passwords by defaults--enablemd5s--usemd5senable MD5 passwords by defaults--disablemd5s disable MD5 passwords by defaults
--passalgotmetavars&hash/crypt algorithm for new passwordss--enableniss*enable NIS for user information by defaults--disableniss+disable NIS for user information by defaults--nisdomains<domain>sdefault NIS domains--nisservers<server>sdefault NIS servers--enableldaps+enable LDAP for user information by defaults
--disableldaps,disable LDAP for user information by defaults--enableldapauths)enable LDAP for authentication by defaults--disableldapauths*disable LDAP for authentication by defaults--ldapservers#default LDAP server hostname or URIs--ldapbasedns<dn>sdefault LDAP base DNs--enableldaptlss--enableldapstarttlss&enable use of TLS with LDAP (RFC-2830)s--disableldaptlss--disableldapstarttlss'disable use of TLS with LDAP (RFC-2830)s--enablerfc2307bissBenable use of RFC-2307bis schema for LDAP user information lookupss--disablerfc2307bissCdisable use of RFC-2307bis schema for LDAP user information lookupss--ldaploadcacerts<URL>s load CA certificate from the URLs--enablesmartcards0enable authentication with smart card by defaults--disablesmartcards1disable authentication with smart card by defaults--enablerequiresmartcards0require smart card for authentication by defaults--disablerequiresmartcards7do not require smart card for authentication by defaults--smartcardmodules<module>s default smart card module to uses--smartcardactions(action to be taken on smart card removals--enablefingerprints9enable authentication with fingerprint readers by defaults--disablefingerprints:disable authentication with fingerprint readers by defaults--enablekrb5s)enable kerberos authentication by defaults
--disablekrb5s*disable kerberos authentication by defaults --krb5kdcsdefault kerberos KDCs--krb5adminserversdefault kerberos admin servers--krb5realms<realm>sdefault kerberos realms--enablekrb5kdcdnss'enable use of DNS to find kerberos KDCss--disablekrb5kdcdnss(disable use of DNS to find kerberos KDCss--enablekrb5realmdnss)enable use of DNS to find kerberos realmss--disablekrb5realmdnss*disable use of DNS to find kerberos realmss--enablewinbinds.enable winbind for user information by defaults--disablewinbinds/disable winbind for user information by defaults--enablewinbindauths,enable winbind for authentication by defaults--disablewinbindauths-disable winbind for authentication by defaults
--smbsecuritys<user|server|domain|ads>s*security mode to use for samba and winbinds
--smbrealms5default realm for samba and winbind when security=adss--smbserverss <servers>s(names of servers to authenticate againsts--smbworkgroups<workgroup>s'workgroup authentication servers are ins--smbidmapranges
--smbidmapuids
--smbidmapgids<lowest-highest>s4uid range winbind will assign to domain or ads userss--winbindseparators<\>s�the character which will be used to separate the domain and user part of winbind-created user names if winbindusedefaultdomain is not enableds--winbindtemplatehomedirs
</home/%D/%U>sGthe directory which winbind-created users will have as home directoriess--winbindtemplateprimarygroups<nobody>sFthe group which winbind-created users will have as their primary groups--winbindtemplateshells</bin/false>sDthe shell which winbind-created users will have as their login shells--enablewinbindusedefaultdomains[configures winbind to assume that users with no domain in their user names are domain userss --disablewinbindusedefaultdomains_configures winbind to assume that users with no domain in their user names are not domain userss--enablewinbindofflines)configures winbind to allow offline logins--disablewinbindofflines+configures winbind to prevent offline logins
--winbindjoins<Administrator>s>join the winbind domain or ads realm now as this administrators
--enableipav2s?enable IPAv2 for user information and authentication by defaults--disableipav2s@disable IPAv2 for user information and authentication by defaults
--ipav2domains-the IPAv2 domain the system should be part ofs--ipav2realmsthe realm for the IPAv2 domains
--ipav2serversthe server for the IPAv2 domains--enableipav2nontps-do not setup the NTP against the IPAv2 domains--disableipav2nontps0setup the NTP against the IPAv2 domain (default)s--ipav2joins <account>s%join the IPAv2 domain as this accounts--enablewinss#enable wins for hostname resolutions
--disablewinss$disable wins for hostname resolutions--enablepreferdnss3prefer dns over wins or nis for hostname resolutions--disablepreferdnss:do not prefer dns over wins or nis for hostname resolutions--enablehesiods-enable hesiod for user information by defaults--disablehesiods.disable hesiod for user information by defaults--hesiodlhss<lhs>sdefault hesiod LHSs--hesiodrhss<rhs>sdefault hesiod RHSs--enablesssdsOenable SSSD for user information by default with manually managed configurations
--disablesssdsVdisable SSSD for user information by default (still used for supported configurations)s--enablesssdauthsMenable SSSD for authentication by default with manually managed configurations--disablesssdauthsSdisable SSSD for authentication by default (still used for supported configurationss--enableforcelegacys;never use SSSD implicitly even for supported configurationss--disableforcelegacys4use SSSD implicitly if it supports the configurations--enablecachecredss5enable caching of user credentials in SSSD by defaults--disablecachecredss6disable caching of user credentials in SSSD by defaults
--enablecachesXenable caching of user information by default (automatically disabled when SSSD is used)s--disablecaches.disable caching of user information by defaults--enablelocauthorizes1local authorization is sufficient for local userss--disablelocauthorizes1authorize local users also through remote services--enablepamaccesss.check access.conf during account authorizations--disablepamaccesss5do not check access.conf during account authorizations--enablesysnetauths0authenticate system accounts by network servicess--disablesysnetauths0authenticate system accounts by local files onlys--enablemkhomedirs6create home directories for users on their first logins--disablemkhomedirs=do not create home directories for users on their first logins --nostarts+do not start/stop portmap, ypbind, and nscds--tests>do not update the configuration files, only print new settingssauthconfig-tuis--backs<display Back instead of Cancel in the main dialog of the TUIs--kickstarts1do not display the deprecated text user interfaces--updatesDopposite of --test, update configuration files with changed settingss--updateallsupdate all configuration filess--probes)probe network for defaults and print thems--savebackups<name>s(save a backup of all configuration filess--restorebackups)restore the backup of configuration filess--restorelastbackupsXrestore the backup of configuration files saved before the previous configuration changesunexpected argumenti(t_R6RR,Rt
add_optionRCtauthinfotpassword_algorithmstgetSmartcardActionstTruet
parse_argstoptionsR9Rtexittprobettesttupdatet updateallt
savebackupt
restorebackuptrestorelastbackupR(Rtusagetparsertactshelptargs((s#/usr/share/authconfig/authconfig.pytparseOptionsts�
"*
cCs�ti|i�}|i�|io#|iod|i|ifGHn|io#|iod|i|ifGHn|io-d|i|i pd|i
pdfGHndS(Nshesiod %s/%ssldap %s/%s
skrb5 %s/%s/%s
R(RKtAuthInfoR9RRt hesiodLHSt hesiodRHSt
ldapServert
ldapBaseDNt
kerberosRealmtkerberosKDCtkerberosAdminServer(Rtinfo((s#/usr/share/authconfig/authconfig.pyRRps
cCsNti|i�|_|ii�|_|iidjot|i_ndS(N( RKtreadR9RftcopytpristineinfotenableLocAuthorizeRRN(R((s#/usr/share/authconfig/authconfig.pytreadAuthInfo}scCs�tititi�otititi�|_tititi�|_titi ti�otiti
ti�|_tititi�otiti
ti�|_tititi�|_tititi�|_dS(N(tostaccessRKtPATH_YPBINDtX_OKtPATH_LIBNSS_NISR-t
PATH_PAM_KRB5R.t
PATH_PAM_LDAPtPATH_LIBNSS_LDAPR/tPATH_PAM_SSStPATH_LIBNSS_SSSR0t PATH_NSCDR1tPATH_PAM_FPRINTDR2(R((s#/usr/share/authconfig/authconfig.pyttestAvailableSubsys�sc
Cs�hdd6dd6dd6dd6d d
6dd6d
d6dd6dd6dd6dd6dd6dd6dd6dd6dd 6d!d"6d#d$6d%d&6d'd(6d)d*6d+d,6d-d.6d/d06d1d26d3d46d5d66d7d86d9d:6d;d<6}hd=d>6d?d@6dAdB6dCdD6dEdF6dGdH6dIdJ6dKdL6dMdN6dOdP6dQdR6dSdT6dUdV6dWdX6dYdZ6d[d\6d]d^6d_d`6dadb6dcdd6dedf6dgdh6didj6dkdl6dmdn6}xv|i�D]h\}}t|ido|�ot|i|t�nt|idp|�ot|i|t�q�q�Wy-|iiod|i_n
dq|i_Wnt j
onX|ii
oY|ii
|iijo@|ii|ii
�|i_
|ii|ii
�|i_nxV|i�D]H\}}t|i|�djo#t|i|t|i|��q�q�W|iioS|iiidrds�}|dt|i_t|�dsjo|ds|i_qhn|iidjo|ii|i_n|iioky,t|ii�}ti�||i_Wq ttfj
o&|itdu��dq|i_q Xn|ii p>|ii!odv|i_"n|ii#odw|i_"q�nC|ii ti$jo,|itdx��dy|i_"dz|_%ndS({NtenableShadowtshadowRjtlocauthorizetenablePAMAccesst pamaccesstenableSysNetAutht
sysnetauthtenableMkHomeDirt mkhomedirtenableCachetcachetenableHesiodthesiodt
enableLDAPtldaptenableLDAPStldaptlstenableRFC2307bist
rfc2307bistenableLDAPAuthtldapauthtenableKerberostkrb5t enableNIStnistkerberosKDCviaDNSt
krb5kdcdnstkerberosRealmviaDNStkrb5realmdnstenableSmartcardt smartcardt
enableFprintdtfingerprinttforceSmartcardtrequiresmartcardt
enableWinbindtwinbindtenableWinbindAuthtwinbindauthtwinbindUseDefaultDomaintwinbindusedefaultdomaintwinbindOfflinetwinbindofflinetenableIPAv2tipav2t
ipav2NoNTPt
ipav2nontpt
enableWINStwinst
enableSSSDtsssdtenableSSSDAuthtsssdauthtenableForceLegacytforcelegacytenableCacheCredst
cachecredstpreferDNSinHostst preferdnstpasswordAlgorithmtpassalgoR_t hesiodlhsR`t hesiodrhsRat
ldapserverRbt
ldapbasednt
ldapCacertURLtldaploadcacertRct krb5realmRdtkrb5kdcRetkrb5adminservertsmartcardModuletsmartcardmoduletsmartcardActiontsmartcardactiont nisDomaint nisdomaint nisServert nisservertsmbWorkgrouptsmbworkgroupt
smbServerst
smbserverstsmbSecuritytsmbsecuritytsmbRealmtsmbrealmt
smbIdmapRanget
smbidmaprangetwinbindSeparatortwinbindseparatortwinbindTemplateHomedirtwinbindtemplatehomedirtwinbindTemplatePrimaryGrouptwinbindtemplateprimarygrouptwinbindTemplateShelltwinbindtemplateshelltipav2Domaintipav2domaint
ipav2Realmt
ipav2realmtipav2Servertipav2servertenabletdisableRt%iis(Bad smart card removal action specified.tmd5tdescrypts;Unknown password hashing algorithm specified, using sha256.tsha256i(&t iteritemsRRPtsetattrRfRNR,R�t
ldapSchematAttributeErrorR�RctgetKerberosKDCRdtgetKerberosAdminServerReRtwinbindjointsplittjoinUserRtjoinPasswordt ipav2joinR�tintRKRMR�t
ValueErrort
IndexErrorR9RIR�t enablemd5R�t
disablemd5RLR3(Rt
bool_settingststring_settingstopttaivaltlstRA((s#/usr/share/authconfig/authconfig.pytoverrideSettings�s�
&"
'
cCstS(N(RN(R((s#/usr/share/authconfig/authconfig.pytdoUI�scCsnt}|iio|iit�}n|iidjo.|iit�o|ii�qjt }n|S(N(
RNRPR�Rft
joinDomainR�Rt
joinIPADomaintwriteSysconfigR,(Rtret((s#/usr/share/authconfig/authconfig.pyR��s
cCs�|ii�|iio!|ii�p
d|_q;n|ii�|iio!|ii�p
d|_q�n$|ii |i
�p
d|_n|i�p
d|_n|ii|ii
�dS(Niii(RfttestLDAPCACertsR�tdownloadLDAPCACertR3trehashLDAPCACertsRPRURtwriteChangedRiR�tposttnostart(R((s#/usr/share/authconfig/authconfig.pyt
writeAuthInfos
cCs�|i�|iio|i�tid�n|iio7ti�djo$|it d��tid�n|i
�|iio'|ii
�}tit|��n|iio0|ii|ii�}tit|��n|iio0|ii|ii�}tit|��n|i�|i�|i�p5|iio|it d��ntid�n|iio|ii�n|i�|iS(Niscan only be run as rootisdialog was cancelledi(R]RPRRRRQRSRltgetuidR9RIRkRXRftrestoreLastR�RWt
restoreBackupRVt
saveBackupRxR�R�t printInfoRR3(Rtrv((s#/usr/share/authconfig/authconfig.pytruns6
!
(RRR4R6R9RCR]RRRkRxR�R�R�RR
(((s#/usr/share/authconfig/authconfig.pyR+Ws
�
k t
AuthconfigTUIcBs�eZd�Zd�Zd�Zd�Zddd�Zd�Zd�Z d�Z
d�Zd �Zd
�Z
d�Zd�Zd
�Zd�ZRS(cCsdS(Nsauthconfig-tui((R((s#/usr/share/authconfig/authconfig.pyR6;scCs2|iio!|iio|iit�ndS(N(RPt kickstartR�RfR�RN(R((s#/usr/share/authconfig/authconfig.pyR�>scCs�|pdSx�|o�|d}|d}t|�tjo@|ii�o|d}|d}q}|d}|d}nti|ti�pItd�||d|f}ti |i
td�|td�g�n|d}qWdS(Niiis�The %s file was not found, but it is required for %s support to work properly.
Install the %s package, which provides this file.tWarningtOki(ttypettupleRft
sssdSupportedRlRmtR_OKRItsnacktButtonChoiceWindowtscreen(Rttoggletwarningtpathtpackagettext((s#/usr/share/authconfig/authconfig.pytwarnCs"
,c#
CsMtitd�ddg}titd�ddg}titiftd�d6dg}titiftd�d7dg}titi ftd
�d8dg}ti
td�d
dg}titd�ddg}titd�ddg}ti
td�d|g} titd�d| g}
tidd�}titd��}|i|dddddd�titd�t|ii��}
}|i|dddddd�titd�t|ii��}}|i|dddddd�titd�t|ii��}}|i|dddddd�titd�t|ii��}}|i|dd dddd�titd!�t|ii��}}|i|dd"dddd�tidd#�}titd$��}|i|dddddd�titd%�t|iid&j��}}|i|dddddd�titd'�t|ii��}}|i|dddddd�titd(�t|ii��}}|i|dddddd�titd)�t|ii��}}|i|dd dddd�titd*�t|ii��}}|i|dd"dddd�titd+�t|ii ��}}|i|dddddd�titd,�t|ii!��}}|i|dd-dddd�tidd�}|i|ddddd.dd/d9�|i|ddd0dd.dd/d:�tidd�}ti"|i#i$o
td1�p
td2��}ti"td3��}|i|dd�|i|dd�tidd�}|i|dddd�|i|dddd�ti%�} |i&i'|td4��| i(|�| i)�}||jo�|
i*�|i_|i*�|i_|i*�|i_|i*�|i_|i*�|i_|i*�|i_|i*�od&|i_n$|iid&jod5|i_n|i*�|i_|i*�|i_|i*�|i_ |i*�|i_!|i*�|i_|ii|f|ii|f|ii|f|ii|
f|ii|f|ii|f|ii|f|ii|f|ii | fg }!x*|!D]}"|i+|"d|"d�qWn|i&i,�||jS(;NtcachingtnscdsFingerprint readertpam_fprintdtKerberostpam_krb5ssssd-clientsLDAP authenticationtpam_ldaptLDAPs
nss-pam-ldapdtNIStypbindsshadow passwordsshadow-utilstWinbindssamba-clientsWinbind authenticationssamba-commoniisUser Informationit
anchorLefttgrowxsCache InformationsUse LDAPisUse NISis Use IPAv2isUse WinbindiitAuthenticationsUse MD5 PasswordsR�sUse Shadow PasswordssUse LDAP AuthenticationsUse KerberossUse Fingerprint readersUse Winbind Authentications!Local authorization is sufficientit anchorToptpaddingtanchorRighttBacktCanceltNextsAuthentication ConfigurationR�(R#ssssd-client(R$ssssd-client(s
nss-pam-ldapdssssd-client(iiii(iiii(-RKRvRIRRwRqRtRrRsRuRntPATH_PWCONVtPATH_WINBIND_NETtPATH_PAM_WINBINDtPATH_LIBNSS_WINBINDRtGridtLabeltsetFieldtCheckboxtboolRfR�R�R�R�R�R�RyR�R�R�R�RjtButtonRPtbacktFormRtgridWrappedWindowtaddR
tselectedRt popWindow(#Rt warnCachetwarnFprintdtwarnKerberostwarnLDAPAuthtwarnLDAPtwarnNISt
warnShadowtwarnWinbindNettwarnWinbindAuthtwarnWinbindtinfoGridtcompR�tcbR�R�R�R�tauthGridR�RztldapaR�tfprintdR�R{tmechGridt
buttonGridtcanceltoktmainGridtformtallwarningsR((s#/usr/share/authconfig/authconfig.pytgetMainChoicesWs�$$$(((((.((((((%%/
cCst|�}tid|�}d} g}
xx|D]p\}}}
}|djopti|tt|i|
���}|
i|�|iti d�d| dd�|i|d| dd�n�|djo|ti |�}|i|d| d ddd�ti
d
t|i|
�d|�}|
i|�|i|d| dd�nO|d
jo�ti |�}|i|d| d ddddd�y#t|i|
�}|i|�Wntj
o|d}nXd}g}x*|D]"}|i||||jf�q�Wtid|�}|
i|�|i|d| dd�nV|djoHtid|dddd�}|
i|�|i|d| dd�n| d7} q1Wti|odpdd�}ti|�}ti|�}|oti|�pd}|i|dd�|o|i|dd�n|i||odpdd�tidd�}|i|ddd ddd�|i|ddd ddd�ti�}|ii||�|i|�x)to!|i�}||joPn|
}x�|D]�\}}}
}|djo&t|i|
|id�i��q|djo&t|i|
|id�i��q|d
jo&t|i|
|id�i��q|djo|id�qqW||joPn|o|�q�q�W|ii�||jS(NiittfvalueRR.iR)tsvalueR-i(thiddenR*trvalueR,tlvaluei2tflexDowntflexUpi(iiii(iiii(iiii(iiii(RRR6R9R:RRfR R8R7tEntrytindexR�RtRadioBartTextboxReflowedR;R=RR>R?RNR
R�tpopR@tvaluetgetSelectionRA(Rtdtitletitemst canceltxttoktxtt
anothertxtt anothercbtrowstquestionGridtrowtwidgetstttdesctattrtvalRNRMtselt
buttonlisttvtradioBarRSRTRUtanotherRVRWtwcopy((s#/usr/share/authconfig/authconfig.pytgetGenericChoices�s�
$
"
$
%
!
&
&
&
c Cs�dtd�ddfdtd�ddfdtd�ddfg}|itd �|td
�|o
td�p
td�d
td�d|i�S(NR[sDomain:R�isRealm:R�sServer:R�sIPAv2 SettingsR/R1RRlsJoin DomainRm(RIR|tmaybeGetJoinSettings(Rtnextt questions((s#/usr/share/authconfig/authconfig.pytgetIPAv2Settings(s,cCs�dtd�ddfdtd�ddfdtd�d dfg}|itd
�|td�|o
td�p
td
��S(NRZsUse TLSR�R[sServer:RaisBase DN:Rbs
LDAP SettingsR/R1R(RIRR|(RR~R((s#/usr/share/authconfig/authconfig.pytgetLDAPSettings0s
cCsldtd�ddfdtd�ddfg}|itd�|td�|o
td �p
td
��S(NR[sDomain:R�isServer:R�sNIS SettingsR/R1R(RIR|(RR~R((s#/usr/share/authconfig/authconfig.pytgetNISSettings7scCs�dtd�ddfdtd�ddfdtd�ddfd td
�ddfd td�d
dfg}|itd�|td�|o
td�p
td��S(NR[sRealm:RcisKDC:Rds
Admin Server:ReRZs"Use DNS to resolve hosts to realmsR�s!Use DNS to locate KDCs for realmsR�sKerberos SettingsR/R1R(RIRR|(RR~R((s#/usr/share/authconfig/authconfig.pytgetKerberosSettings=scCs�dtd�ddfdtd�ddfg}|iipd|i_n|itd �|td
�td��om|ii�|ii�|iio|iit �n"|ii
o|iit �n|ii�nt S(NR[sDomain Administrator:R�is Password:R�it
Administrators
Join SettingsR0R(
RIRfR�R|RtsuspendRTR�R�RNR�R�tresume(RR((s#/usr/share/authconfig/authconfig.pytgetJoinSettingsFs
cCs�dtd�ddfg}ti|i�}|i�|ii�t}|ii|�o.|i td�|td�td��}n|o|ii
�n|i�tS(NR^s�Some of the configuration changes you've made should be saved to disk before continuing. If you do not save them, then your attempt to join the domain may fail. Save changes?s
Save SettingstNotYes(
RIRRKRgR9RTRfR,tdiffersR|RR�RN(RRt orig_infoR�((s#/usr/share/authconfig/authconfig.pyR}Vs
c Cs�ddg}ddddddg}d �}t||�}d
td�d|fd
td�ddfd
td�ddfd
td�ddfd
td�d|fg}|itd�|td�|o
td�p
td�dtd�d|i�S(Ntadstdomains
/sbin/nologins/bin/shs /bin/bashs /bin/tcshs/bin/kshs/bin/zshcSsti|ti�S(N(RlRmRo(tshell((s#/usr/share/authconfig/authconfig.pytshellexistsksR]sSecurity Model:R�R[sDomain:R�isDomain Controllers:R�s
ADS Realm:R�sTemplate Shell:R�sWinbind SettingsR/R1RRlsJoin DomainRm(tfilterRIR|R}(RR~tsecuritytshellsR�R((s#/usr/share/authconfig/authconfig.pytgetWinbindSettingsfs ,cCsbd}t}xI|djo;|djo.|ii�|djo|i�}n�|djoq|iio`|iip>|iip1|iip$|iip|ii p
|ii
}|i|�}q'nW|djod|iip
|iioF|iip$|iip|ii p
|ii
}|i|�}q'n�|djoJ|iio9|iip|ii p
|ii
}|i
|�}q'n�|djo=|iio,|ii p
|ii
}|i|�}q'nE|djo7|ii p
|ii
ot}|i|�}q'n|ii�|o|d7}q|d8}qW|djS( Niiiiiiii(R,RfRTRYR�R�R�R�R�R�R�R�R�R�R�R�(RR~trctmore((s#/usr/share/authconfig/authconfig.pyt
getChoices{sV
cCsBtd�|ii}ti|itd�|td�g�dS(Ns�To connect to a LDAP server with TLS protocol enabled you need a CA certificate which signed your server's certificate. Copy the certificate in the PEM format to the '%s' directory.
Then press OK.RR(RIRft
ldapCacertDirRRR(RR((s#/usr/share/authconfig/authconfig.pytdisplayCACertsMessage�s
cCs�|iiotSz�ti�|_|i�}|iitd��|ii dd|d�|i
�p|ii�tS|i
io|i
i�o|i�nWd|ii�XtS(NsN <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screenis - (c) 1999-2005 Red Hat, Inc.(RPRRNRtSnackScreenRR6tpushHelpLineRItdrawRootTextR�tfinishR,RfR�RR�(Rtpackageversion((s#/usr/share/authconfig/authconfig.pyR��s
N(RRR6R�RRYRR|R�R�R�R�R�R}R�R�R�R�(((s#/usr/share/authconfig/authconfig.pyR:s r_ - t__main__R5(RKtacutiltgettextRltsignalRtlgettextRItoptparseRRRt setlocaletLC_ALLRRRRR+RRtSIGINTtSIG_DFLt
textdomainR6RQR
(((s#/usr/share/authconfig/authconfig.pyt<module>s*0
$����