File: //lib/python3/dist-packages/samba/tests/__pycache__/ldap_spn.cpython-310.pyc
o
��aÈ � @ s� d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlZd dl m
Z
d dlmZm
Z
d dlmZ d dlmZmZ d dlmZmZ d d lmZ d dlmZ d dlZd d
lmZmZmZ d dlm Z m!Z! dZ"h d
�Z#dZ$dZ%dZ&ej'Z(ej)Z*ej+Z,ej-Z.ej/Z0ej1Z2ej3Z4ze5 W n
e6y� dd� Z5Y nw dd� Z7e7� d&dd�Z8d&dd�Z9 d'dd�Z:G dd� de�Z;eG dd� de;��Z<eG d d!� d!e;��Z=eG d"d#� d#e;��Z>d$d%� Z?e?� dS )(� N)�SamDB)�system_session)�SDUtils)�DONT_USE_KERBEROS�Credentials)�FEATURE_SEAL)�SubunitOptions�TestProgram)�TestCase�ldb_err)�DynamicTestCase)�c_RED�c_GREEN�
c_DARK_YELLOW)�UF_SERVER_TRUST_ACCOUNT�UF_TRUSTED_FOR_DELEGATIONz$f3a64788-5306-11d1-a9c5-0000f80367c1> �dn�dNSHostName�sAMAccountName�servicePrincipalNameTF�reportc C s dd l } | �� d S )Nr )�pdb� set_trace)r � r �6/usr/lib/python3/dist-packages/samba/tests/ldap_spn.py�
breakpointA s r c C s� t �d�} t�| �}| �|� t�| �}| �|� t| �a| �t� | jdddt j
�� d� | jddd� | �� \}}t
|�d krJ| �� t �d � |�� a|�t�a|d
at�� a|ja|jad S )Nz&python3 ldap_spn.py <server> [options]z--colour�
store_truezuse colour text)�action�help�defaultz--filterz"only run tests matching this regex)r � r )�optparse�OptionParser�options�SambaOptions�add_option_group�CredentialsOptionsr �subunitopts�
add_option�sys�stdout�isatty�
parse_args�len�print_usage�exit�get_loadparm�LP�get_credentials�CREDS�SERVER� get_realm�REALM�colour�COLOUR_TEXT�filter�FILTER)�parser� sambaopts�credopts�opts�argsr r r �initF s0 �
�
r@ c C s0 t s| S |dkrt| �S |dkrt| �S t| �S )N�error�pass)r8 r
r r )�x�stater r r �colour_textl s rE c C s. | d u r
t } t� }nd }tdt� �t|| d�S )Nzldap://)�url�lp�session_info�credentials)r3 r r r4 r1 )�creds�sessionr r r � get_samdbw s
�rL � samba123@c
C s� t � }|�|� |�|� |�t�� � |�t�� � |�t� � � |�
t�� tB � |�
t� d|� d|� �}|�dd�d }| j|||d� |rgt| �}|�|�} |D ]}
dt� d| � d�}|�|
|� qUt|d �}|S )
N�CN=�,r r )�userouz
(OA;CI;WP;z;;�))rJ )r �set_username�set_password�
set_domainr3 �
get_domain� set_realmr5 �set_workstation�get_workstation�set_gensec_features�get_gensec_featuresr �set_kerberos_stater �split�newuserr �get_object_sid�SPN_GUID�dacl_add_acerL )
�samdb�ou�username�writeable_objects�passwordrJ �dnstr�short_ou�sd_utils�sid�obj�mod�unpriv_samdbr r r �add_unpriv_user� s&