HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/ipaclient/install/__pycache__/ipa_client_samba.cpython-36.pyc
3

�d[e-h�@s�ddlmZddlZddlZddlZddlmZddlmZddl	m
Z
ddlmZddl
mZmZddlmZmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlm Z ddl!m"Z"ddl#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*ddl+m,Z,ej-ej.j/e0��Z1e1j2ej3�e
dd��Z4dd�Z5dZ6dd�Z7dddd �Z8dd!dd �Z9d"d#�Z:d$Z;d%Z<d&Z=d'd(�Z>d)d*�Z?d+d,�Z@d-d.�ZAd/d0�ZBd:d2d3�ZCd4d5�ZDd6d7�ZEd8d9�ZFdS);�)�print_functionN)�urlsplit)�OptionParser)�contextmanager)�	discovery)�CLIENT_NOT_CONFIGURED�CLIENT_ALREADY_CONFIGURED)�api�errors)�
sysrestore)�check_client_configuration)�context)�ipautil)�SetseboolError)�standard_logging_setup)�DNSName)�tasks)�paths)�	constants)�services)�ScriptError)�generate_random_passwordc cs�tj���}z�ttdd�}tj|tjj�}||d�}tj|d|d�t	j
d�sTt	j�y.t	jj
j�rnt	jj
j�t	jj
j�dVWn<tjjk
r�}ztd||t|�f��WYdd}~XnXWdt	jj
j�r�t	jj
j�ttd|�XWdQRXdS)N�	principal)ZccacheZ
client_keytabZinitiate)�name�usage�store�finalizezGUnable to bind to IPA server. Error initializing principal %s in %s: %s)rZprivate_ccache�getattrr
�gssapi�NameZNameTypeZkerberos_principalZCredentialsr	ZisdonerZBackendZ	rpcclientZisconnectedZ
disconnectZconnect�
exceptionsZGSSError�	Exception�str�setattr)rZkeytabZccache_fileZ
old_principalrr�e�r%�&/usr/lib/python3.6/ipa_client_samba.py�use_api_as_principal's(



(r'cCs�d}t|d�}|jdddd�|jddd	dd
�|jddd
ddd�|jddd
ddd�|jddd
ddd�|jdddd
ddd�|jdddd
ddd�|jdd d
dd!d�|j�\}}||fS)"Nz%prog [options]
)rz--server�serverz FQDN of IPA server to connect to)�dest�helpz--netbios-name�netbiosnamezNetBIOS name of this machine)r)r*�defaultz
--no-homes�no_homes�
store_trueFz=Do not add [homes] share to the generated Samba configuration)r)�actionr,r*z--no-nfs�no_nfsz/Do not allow NFS integration (SELinux booleans)z--force�forcez'force installation by redoing all stepsz-dz--debug�debugzprint debugging informationz-Uz--unattended�
unattendedz.unattended installation never prompts the userz--uninstall�	uninstallz+Revert configuration and remove SMB service)rZ
add_option�
parse_args)r�parser�options�argsr%r%r&�
parse_optionsEsf
r9z�
 Domain name: {domain_name}
NetBIOS name: {netbios_name}
         SID: {domain_sid}
    ID range: {range_id_min} - {range_id_max}
cCs.g}x|D]}|jtjf|��q
Wdj|�S)N�
)�append�domain_information_template�format�join)�info�result�domainr%r%r&�pretty_print_domain_information�s
rBZ
ipantflatnameZipantsecurityidentifier�cn)�netbios_name�
domain_sid�domain_nameZipanttrusteddomainsidcCs�y|jj}Wntk
r gSXy|�d}Wntjk
rFgSXt�}x*tj�D]\}}|j|dg�d||<qXWdj	|j
jd�}|jj|�d}t
|dd�|d<t
|dd�t
|dd�d|d	<|g}|jj�d}x�|D]�}|jj|d
dddd�d}	x�|	D]�}
t�}x(tD] }|
jt|dg�d||<�q(Wdj	|d
j�d�}|jj|�d}
t
|
dd�|d<t
|
dd�t
|
dd�d|d	<|j|��qWq�W|S)Nr@rz{realm}_id_range)�realmZ	ipabaseidZrange_id_minZipaidrangesize�Zrange_id_maxrCT)�all�rawrF)�CommandZtrustconfig_show�AttributeErrorr
�PublicError�dict�trust_keymap�items�getr=�envrGZidrange_show�intZ
trust_findZtrustdomain_find�trust_keymap_trustdomain�upperr;)r	Z
tc_commandr@Zl_domain�key�valZ
idrange_local�domainsZforest�r�domZr_domZr_idrange_nameZ	r_idranger%r%r&�retrieve_domain_information�s>(


 (r[a-
[global]
    # Limit number of forked processes to avoid SMBLoris attack
    max smbd processes = 1000
    # Use dedicated Samba keytab. The key there must be synchronized
    # with Samba tdb databases or nothing will work
    dedicated keytab file = FILE:${samba_keytab}
    kerberos method = dedicated keytab
    # Set up logging per machine and Samba process
    log file = /var/log/samba/log.%m
    log level = 1
    # We force 'member server' role to allow winbind automatically
    # discover what is supported by the domain controller side
    server role = member server
    realm = ${realm}
    netbios name = ${machine_name}
    workgroup = ${netbios_name}
    # Local writable range for IDs not coming from IPA or trusted domains
    idmap config * : range = 0 - 0
    idmap config * : backend = tdb
z
    idmap config ${netbios_name} : range = ${range_id_min} - ${range_id_max}
    idmap config ${netbios_name} : backend = sss
z2
# Default homes share
[homes]
    read only = no
cCs�tjtjj|jd�}|dd|d<tg}x |D]}|jtj	t
|�g�q0W|js^|jtg�|j
tj�ttjd��}|jtj	dj|�|��WdQRXtjtj�dS)N)Zsamba_keytabrGZmachine_namerrD�wr:)r�SAMBA_KEYTABr	rRrGr+�smb_conf_template�extendrZtemplate_str�idmap_conf_domain_snippetr-�homes_conf_snippetZbackup_file�SMB_CONF�open�writer>rZrestore_context)�fstore�
statestorer7rXZsub_dict�templaterZ�fr%r%r&�configure_smb_confs

"ricCs
tdd�S)N��)r)rerfr7rAr%r%r&�generate_smb_machine_accountsrlc	Cs�tjd|dtjdddg}ytj||d|dd�Wn2tjk
rf}ztjd	|��WYdd}~XnXd
}ytj	j
||d�Wn4tjk
r�}ztjd||��WYdd}~XnXdS)
Nz-pz-kz-Pz-ez<aes128-cts-hmac-sha1-96,aes256-cts-hmac-sha1-96,arcfour-hmacr:zutf-8)�stdin�encodingz8Cannot set machine account password at IPA DC. Error: %szipaNTHash=MagicRegen)Zaddattrz<Cannot update %s principal NT hash value due to an error: %s)
rZ
IPA_GETKEYTABr]r�run�CalledProcessError�logger�errorr	rKZservice_modr
rM)	rerfr7rAr�passwordr8r$�valuer%r%r&�retrieve_service_principal#s0ruc:Csrtjd|dg}ytj|�Wn2tjk
rP}ztjd|��WYdd}~XnXdj|d�}tjtj	d|dg}ytj|�Wn2tjk
r�}ztjd|��WYdd}~XnXd	j|d�}tjtj	d|dg}ytj|�Wn4tjk
�r}ztjd|��WYdd}~XnXtjd
dg}ytj||dd
�Wn4tjk
�rl}ztjd|��WYdd}~XnXdS)NZsetdomainsidrEz)Cannot set domain SID in Samba. Error: %sz#SECRETS/MACHINE_LAST_CHANGE_TIME/{}rDrz2\00z8Cannot prepare machine account creds in Samba. Error: %szSECRETS/MACHINE_PASSWORD/{}Zchangesecretpwz-fzutf-8)rmrnz4Cannot set machine account creds in Samba. Error: %s)
r�NETrrorprqrrr=ZTDBTOOLZSECRETS_TDB)rerfr7rArsr8r$Zsecrets_keyr%r%r&�populate_samba_databasesIs<
rwcCsltjdddddg}tjd�ytj|�Wn<tjk
rf}zd|jkrVtjd|��WYdd}~XnXdS)	N�groupmap�addzsid=S-1-5-32-546zunixgroup=nobodyztype=builtinz&Map BUILTIN\Guests to a group 'nobody'z"already mapped to SID S-1-5-32-546z8Cannot map BUILTIN\Guests to a group "nobody". Error: %s)	rrvrqr?rrorp�stdoutrr)rerfr7rAr8r$r%r%r&�configure_default_groupmapvs

r{Tcsn�fdd�}|r|nd}ytj||d�Wn>tk
rh}z"tdt|��tjd|�WYdd}~XnXdS)Ncs�jd||�dS)N�selinux)�backup_state)rrt)rfr%r&�default_backup_func�sz1set_selinux_booleans.<locals>.default_backup_func)�backup_funcz	WARNING: zWARNING: %s)r�set_selinux_booleansr�printr"rqr?)Zbooleansrf�backupr~rr$r%)rfr&r��sr�cCs0|jsttjd|�|js,ttjd|�dS)NZshare_home_dirsZreshare_nfs_with_samba)r-r�r�SELINUX_BOOLEAN_SMBSERVICEr0)rerfr7rAr%r%r&�harden_configuration�sr�c%sHtjdt�}tjdt�}x(||fD]}|j�r6|j�|j�q"Wi}x,tjD]"}x|D]}|jd|�||<qXWqNW|r�t	||dd�t
jtj
d�|jtj�r�t
jtj�|jtj�x^tjtjjtjd�tjjtjd�fD]6��fd	d
�tj��D�}	x|	D]}
t
j|
��qWq�Wtjjtj��r�y t
jtjdtjjdtjg�WnBt
jk
�r�}z"|jd
k�rztj dtjj�WYdd}~XnXt!tjj"tj#���ytj$j%tjj�Wn�t&j'k
�r�}zt(dt)|��WYdd}~XnRt&j*k
�rtj+d�Yn2t&j,k
�r8}ztj-d|�WYdd}~XnXWdQRXdS)N�smb�winbindr|F)r�)Zccache_pathZprivate�lockcs$g|]}|jd�rtjj�|��qS)z.tdb)�endswith�os�pathr>)�.0�tdb_file)�smbpathr%r&�
<listcomp>�szuninstall.<locals>.<listcomp>z--principalz-k�zFailed to remove old key for %szThis client is incompatible: z.No SMB service principal exists, OK to proceedz7Cannot connect to the server due to a generic error: %s).rZservicer	Z
is_running�stop�disablerr�Z
restore_stater�rZ
remove_ccacherZKRB5CC_SAMBAZhas_filerbZremove_fileZrestore_fileZ	SAMBA_DIRr�r�r>�listdir�existsr]roZIPA_RMKEYTABrR�	smb_princrp�
returncoderqZcriticalr'�
host_princ�KRB5_KEYTABrK�service_delr
�VersionErrorr�r"�NotFoundr2rMrr)rerfr7r�r�ZsvcZboolean_statesZusecaserZ	tdb_filesr�r$r%)r�r&r4�s\


 r4c8Cs�y
t�Wn,tk
r6}zt|j�|jSd}~XnXtjtj�}tj	tj�}t
�\}}tj}|jrltj
}t|d|jddd�tdtjd|jdd�}tjf|�ttdtjjtjjf�td	tjjtjjf�d
�}tjjf|�|j�rn|jd��rbt|||�y$d9}x|D]}	|jd|	��qWWn.tk
�rV}ztd|�dSd}~Xn
Xtd�ntd�dSd}
tjjtj��r�tj}
|jd��r�|j �r�td�t!Stjjtj"��s�td�t#Sd}t$j%�}|j&�sjtd�|j'|
d�}
t(jd�|
t$j)k�r2t(jd�t*tjj+�}|j,g}t(jd|j,�n6d}|j-�sJtd�dSt(jdd j.|j-��|j-d}n�|j&}t(jd!|�|j/|tjj|
�}|dt$j0k�r�td"�td#�td$�n:|dt$j1k�r�t(j2d%�n|ddk�r�td&|�dS|�std'|�t(jd(|�ntd)�t(j3d*�tjj|k�r@t(j4d+�dS|j5�s`t6j7tjj�dj8�|_5|j5j9�|_5t:tjj;tj<���:yHtj=j>}tj=j?tjj@�td,tjj@�|j �s�dStj=jAtjj@�Wn�tBk
�r�t(j4d-|�dStCjDk
�r}ztd.t|��dSd}~XnPtCjEk
�r<t(jd/�Yn0tCjFk
�rj}zt(j4d0|�dSd}~XnXtd1|�td2tjj@�td3|j5�t(j3d1|�t(j3d2tjj@�t(j3d3|j5�tGt�}tH|�dk�r�t(j4d4�dStI|�}t(j3d5|�td5|�|jJ�r*tKjLd6d��r*td7�dS|jMdd��sB|j �r`|tjj|j5�|jNddd�tO||||d�}|jMdd��s�|j �r�tP||||�|jNddd�|jMdd�dk�r�tQ||||dtjj@|�|jNddd�|jMdd��s�|j �rtR||||d|�|jNddd�|jMdd��s2|j �rRtS||||d�|jNddd�|jMdd
��sj|j �r�tT||||d�|jNdd
d�|jNddd�td8tjU�t(j3d8tjU�WdQRXdS):NF�az%(message)s)�verboser2�filemodeZconsole_formatZ
cli_installerr)r
ZconfdirZ	in_serverr2r�z
host/%s@%sz
cifs/%s@%s)r�r�Z
domain_member�
configured�	hardeningrx�tdb�service.principal�smb.confz9Error: Failed to remove the domain_member statestores: %srHz�Samba configuration is reverted. However, Samba databases were fully cleaned and old configuration file will not be usable anymore.z)Samba domain member is not configured yetz)Samba domain member is already configuredzSamba suite is not installedzSearching for IPA server...)�ca_cert_pathzExecuting DNS discoveryz&Autodiscovery did not find LDAP serverzSetting server to %sTz7Autodiscovery was successful but didn't return a serverz*Autodiscovery success, possible servers %s�,z"Verifying that %s is an IPA serverz0Anonymous access to the LDAP server is disabled.z'Proceeding without strict verification.zNNote: This is not an error if anonymous access has been explicitly restricted.z,Unencrypted access to LDAP is not supported.z*Unable to confirm that %s is an IPA serverzIPA server: %szUsing fixed server %szIPA server: DNS discoveryzConfigured to use DNS discoveryz�Cannot run on IPA master. Cannot configure Samba as a domain member on a domain controller. Please use ipa-adtrust-install for that!zUWARNING: SMB service principal %s already exists. Please remove it before proceeding.zIChosen IPA master %s does not have support to set up Samba domain memberszThis client is incompatible: z.No SMB service principal exists, OK to proceedz7Cannot connect to the server due to a generic error: %szChosen IPA master: %szSMB principal to be created: %szNetBIOS name to be used: %sz�No configured trust controller detected on IPA masters. Use ipa-adtrust-install on an IPA master to configure trust controller role.zDiscovered domains to use:
%sz3Continue to configure the system with these values?zInstallation abortedzfSamba domain member is configured. Please check configuration at %s and start smb and winbind services)r�r�rxr�r�r�)Vrrr��msgZrvalrZ	FileStorerZIPA_CLIENT_SYSRESTOREZ	StateFiler9ZIPACLIENTSAMBA_INSTALL_LOGr4ZIPACLIENTSAMBA_UNINSTALL_LOGrr2rNZETC_IPAr	Z	bootstrapr"rR�hostrGZ_mergeZ	has_stateZdelete_stater!r�r�r�Z
IPA_CA_CRTr1rZSMBDrrZIPADiscoveryr(�searchrqZNO_LDAP_SERVERrZ
xmlrpc_uriZnetlocZserversr>ZipacheckldapZNO_ACCESS_TO_LDAPZNO_TLS_LDAPZwarningr?rrr+rZ	from_text�decoderUr'r�r�rK�service_add_smbZservice_showr�r�rLr
r�r�rMr[�lenrBr3rZ
user_inputZ	get_stater}rlrirurwr{r�rb)r$rerfr7Z_argsZlogfileZcfgZlocal_config�keysrVr�ZautodiscoverZds�ret�sr(Zldapretr�rXZstr_inforsr%r%r&ro�sf










ro)T)GZ
__future__rZloggingr�rZurllib.parserZoptparser�
contextlibrZ	ipaclientrZipaclient.install.clientrrZipalibr	r
Zipalib.installrZipalib.utilrZipalib.requestr
Z	ipapythonrZipapython.errorsrZipapython.ipa_log_managerrZipapython.dnsutilrZipaplatform.tasksrZipaplatform.pathsrZipaplatform.constantsrZipaplatformrZipapython.admintoolrZsambarZ	getLoggerr��basename�__file__rqZsetLevel�DEBUGr'r9r<rBrOrTr[r^r`rarirlrurwr{r�r�r4ror%r%r%r&�<module>s^DS&-
F