
    g                     6   S r SrSSKrSSKrSSKrSSKJrJr  SSKJ	r	J
r
Jr  SSKJr  SSKJr  SSKJr  SS	KJrJrJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  S r  SS jr S r!S r"S r#S r$S r%S r&S\RN                  0r(S r)S r*  SS jr+g)z3Support code for upgrading from Samba 3 to Samba 4.restructuredText    N)Ldbregistry)	provisionProvisioningErrorsetsysvolacl)	FILL_FULL)passdb)param)lsasamrsecurity)dom_sid)Credentials)dsdb)ndr_pack)unix2nttime)generate_random_passwordc                    [         R                  " 5       nU R                  5       Ul        SU;   a5  [         R                  " [        US   5      [         R                  S5      US'   SU;   a5  [         R                  " [        US   5      [         R                  S5      US'   SU;   aF  US   n[        U* S-  5      n[         R                  " [        U5      [         R                  S	5      US
'   SU;   a[  US   nUS:X  d  US:X  d  US:X  a  SnO[        U* S-  5      n[         R                  " [        U5      [         R                  S5      US'   SU;   aE  US   n[        US-  5      n	[         R                  " [        U	5      [         R                  S5      US'    U R                  U5        g! [         R                   a%  n
UR                  S[        U
5      5         Sn
A
gSn
A
ff = f)z~Import a Samba 3 policy.

:param samdb: Samba4 SAM database
:param policy: Samba3 account policy
:param logger: Logger object
zmin password lengthminPwdLengtha01zpassword historypwdHistoryLengtha02zminimum password ageg    cA	minPwdAgea03zmaximum password ager   l    l         	maxPwdAgea04zlockout duration<   lockoutDurationa05z"Could not set account policy, (%s)N)ldbMessageget_default_basedndnMessageElementstrFLAG_MOD_REPLACEintr   modifyLdbErrorwarn)samdbpolicyloggermmin_pw_age_unixmin_pw_age_ntmax_pw_age_unixmax_pw_age_ntlockout_duration_minslockout_duration_ntes              //usr/lib/python3/dist-packages/samba/upgrade.pyimport_sam_policyr9   )   s     	A##%AD&%%c&1F*G&H&)&:&:NL% V#%%c&1C*D&E&)&:&:<NP% ' !78_,45%%c-&8#:N:N&13% ' !78b Oq$8Oz<Y/M 0C 89M%%c-&8#:N:N&13% V# &'9 :)*?"*DE%%c*=&>&)&:&:<MO%BQ<< B8#a&AABs   F, ,G% G  G%c                     [         R                  " 5       n[         R                  " US[        U5      -  5      Ul        US:X  a  [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " [        U5      [         R                  S5      US'   UR                  U5        g! [         R                   a/  n	U R                  S[        U5      [        U	5      5         Sn	A	gSn	A	ff = f)	a7  Add posix attributes for the user/group

:param samdb: Samba4 sam.ldb database
:param sid: user/group sid
:param nisdomain: name of the (fake) NIS domain
:param xid_type: type of id (ID_TYPE_UID/ID_TYPE_GID)
:param home: user homedir (Unix homepath)
:param shell: user shell
:param pgid: users primary group id
<SID=%s>ID_TYPE_UIDunixHomeDirectory
loginShell	gidNumbermsSFU30NisDomainz7Could not add posix attrs for AD entry for sid=%s, (%s)N)
r"   r#   Dnr'   r%   r&   r(   r*   r+   r,   )
r/   r-   sid	nisdomainxid_typehomeshellpgidr0   r7   s
             r8   add_posix_attrsrH   a   s   KKMvveZ#c(23}$%(%7%7D	3//1D&FA!"!00E
C00,@AlO //D	3//>AkN !$ 2 2	NC002D!F
 	Q<< EHc!f	 	s   DD E"3%EE"c           
          [         R                  " 5       n[         R                  " U S[        U5      -  5      Ul        US:X  a\  [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " S[         R                  S5      US'   OaUS:X  a[  [         R
                  " [        U5      [         R                  S5      US'   [         R
                  " S[         R                  S5      US'   U R                  U5        g
! [         R                   a:  nUR                  S	[        U5      [        U5      U[        U5      5         S
nAg
S
nAff = f)zCreate idmap entry

:param samdb: Samba4 sam.ldb database
:param sid: user/group sid
:param xid: user/group id
:param xid_type: type of id (ID_TYPE_UID/ID_TYPE_GID)
:param logger: Logger object
r;   r<   	uidNumberposixAccountobjectClassID_TYPE_GIDr?   
posixGroupz?Could not modify AD idmap entry for sid=%s, id=%s, type=%s (%s)N)r"   r#   rA   r'   r%   r&   r(   FLAG_MOD_ADDr*   r+   r,   )r-   rB   xidrD   r/   r0   r7   s          r8   add_ad_posix_idmap_entryrQ      s   2KKMvveZ#c(23}$ //C#..=AkN"11 0 0- AAm& //C#..=AkN"11c.. ?Am 	Q<< 2MHc#h#a&	2 	22s   DD E"(0EE"c           
         SnU R                  S[        U5      -  S9nUR                  S:X  a  SnU(       a   [        R                  " 5       nUS   S   R                  UR                  5      Ul        [        R                  " [        U5      [        R                  S5      US'   [        R                  " U[        R                  S	5      US	'   U R                  U5        g U R                  S[        U5      -  [        U5      S[        U5      U[        U5      S.5        g! [        R                   a:  nUR                  S
[        U5      [        U5      U[        U5      5         SnAgSnAff = f! [        R                   a:  nUR                  S[        U5      [        U5      U[        U5      5         SnAgSnAff = f)zCreate idmap entry

:param idmapdb: Samba4 IDMAP database
:param sid: user/group sid
:param xid: user/group id
:param xid_type: type of id (ID_TYPE_UID/ID_TYPE_GID)
:param logger: Logger object
FzobjectSid=%s)
expression   Tr   r%   	xidNumbertypez<Could not modify idmap entry for sid=%s, id=%s, type=%s (%s)NzCN=%ssidMap)r%   cnrL   	objectSidrV   rU   z9Could not add idmap entry for sid=%s, id=%s, type=%s (%s))searchr'   countr"   r#   copyr%   r&   r(   r*   r+   r,   addr   )	idmapdbrB   rP   rD   r/   foundmsgr0   r7   s	            r8   add_idmap_entryra      sn    E
..NSX$=.
>C
yyA~	6Aq6$<$$QUU+AD //C#..=AkN**#..8AfINN1
	6KKwS1"3x(0&.sm!)&)#h0 1 || 	6KKNC#c(Hc!f6 6	6 || 	6KKKC#c(Hc!f6 6	6s0   B'D! !?E2 !E/50E**E/2G 0F;;G c                     UR                  5       n[	        UR                  5       UR                  5       5      nUn[        R                  " 5       n[        R                  " U S5      Ul
        [        R                  " [        U5      [        R                  S5      US'   [        R                  " [        U5      [        R                  S5      US'   U R                  U5        UR                  5        HS  u  pUS:X  a  Sn
OUS	:X  a  S
n
OUR                  SU5        M+  UR                  X5      n[!        U [#        U5      XU5        MU     g! [         a%  nUR                  S[        U5      5         SnAgSnAff = f)zImport idmap data.

:param idmapdb: Samba4 IDMAP database
:param samba3_idmap: Samba3 IDMAP database to import from
:param logger: Logger object
z(Cannot open idmap database, Ignoring: %sNz	CN=CONFIG
lowerBound
lowerboundrU   UIDr<   GIDrM   z+Wrong type of entry in idmap (%s), Ignoring)get_idmap_dbIOErrorr,   r'   maxget_user_hwmget_group_hwmr"   r#   rA   r%   r&   r(   r*   idsget_sidra   r   )r^   samba3r/   samba3_idmapr7   
currentxidrd   r0   id_typerP   rD   rB   s               r8   import_idmaprr      s:   **,
 \..0,2L2L2NOJJ 	A66';'AD((J--|=AlO''J--{<AkNNN1$((*e$H$HKKEwO""30sfE +!  >AGs   E
 

E9E44E9c                     U R                  S[        UR                  5      -  [        R                  S9nSnU(       a;  UR                  S[        UR                  5      UR                  WS   S   S   5        gUR                  [        R                  :X  aE  UR                  R                  5       u  pU[        R                  " [        R                   5      :w  a  g[        R"                  " 5       n
[        R$                  " U S	5      U
l        U
R&                  R)                  SS
UR                  5        U
R&                  R+                  U R-                  5       5        [        R.                  " S[        R0                  S5      U
S'   [        R.                  " [3        UR                  5      [        R0                  S5      U
S'   [        R.                  " UR                  [        R0                  S5      U
S'   UR4                  (       a3  [        R.                  " UR4                  [        R0                  S5      U
S'   UR                  [        R6                  :X  d  UR                  [        R                  :X  a@  [        R.                  " [        [8        R:                  5      [        R0                  S5      U
S'    U R=                  U
S/S9  g! [        R
                   aE  nUR                  u  pgU[        R                  :X  a  Sn SnAGN[        R
                  " Xg5      eSnAff = f! [        R
                   a0  nUR                  SUR                  [        U5      5         SnAgSnAff = f)zAdd or modify group from group mapping entry

param samdb: Samba4 SAM database
param groupmap: Groupmap entry
param logger: Logger object
r;   )basescopeTFNzJGroup already exists sid=%s, groupname=%s existing_groupname=%s, Ignoring.r   sAMAccountNamezCN=X,CN=UsersCNgrouprL   rY   description	groupTypezrelax:0)controlsz Could not add group name=%s (%s))rZ   r'   rB   r"   
SCOPE_BASEr+   argsERR_NO_SUCH_OBJECTr,   nt_namesid_name_user   SID_NAME_WKN_GRPsplitr   r   SID_BUILTINr#   rA   r%   set_componentadd_baser$   r&   rO   r   commentSID_NAME_ALIASr   !GTYPE_SECURITY_DOMAIN_LOCAL_GROUPr]   )r-   groupmapr/   r`   r_   e1ecodeemsggroup_dom_sidridr0   r7   s               r8   add_group_from_mapping_entryr      s   	,llc(,,//s~~  G `%x'7'7Q@P9QRS9T	V   C$8$88#+<<#5#5#7 ]!1!1(2F2F!GGKKMvve_-	1dH$4$45	e..01--gs7G7GW-++HX\\,BCDTDT,79+!001A1A3CSCS1AC
 "11(2B2BCDTDT2? AAm   C$6$66(:O:OSVSgSg:g //D4Z4Z0[030@0@+OAkN	VIIa9+I.M << ,C***E,,u++,N || 	VKK:H<L<LcRSfUU	Vs5   6K	 7L% 	L"$LLL"%M)9&M$$M)c           
         U H  n[         R                  " 5       n[         R                  " U S[        UR                  5      -  5      Ul        [         R                  " S[        U5      -  [         R                  S5      US'    U R                  U5        M     g	! [         R                   a  nUR                  u  pxU[         R                  :X  a#  UR                  SXAR                  U5         S	nAM  U[         R                  :X  a!  [        SU< SUR                  < SU< 35      e[        SU< SUR                  < SU< 35      eS	nAff = f)
zAdd user/member to group/alias

param samdb: Samba4 SAM database
param group: Groupmap object
param members: List of member SIDs
param logger: Logger object
r;   memberr   z/skipped re-adding member '%s' to group '%s': %szCould not add member 'z' to group 'z0' as either group or user record doesn't exist: z': N)r"   r#   rA   r'   rB   r%   r&   rO   r*   r+   r}   ERR_ENTRY_ALREADY_EXISTSdebugr~   r   )	r-   rx   membersr/   
member_sidr0   r7   r   r   s	            r8   add_users_to_groupr   ,  s    
KKMvveZ#eii.89%%j3z?&BCDTDTV^_%		wLLO  || 	wFFMU444NPZ\e\egkll#000'  GQ  SX  S\  S\  ^b  )c  d  d'Ycejenenpt(uvv	ws   BE-?E2AEEc                    SnUR                  5        GH$  u  nu  pEnUS-  n[        UR                  SS5      S   S5      nUS:X  a  SnO3US-  (       a  [        U5      S:  a  SnOSnO[        U5      S:  a  SnOSnU[        R                  " 5       :  a  Sn	OSn	US	-  S
-	  n
U R                  S[        UR                  S5      5      -  UR                  S5      S   UR                  S5      S   S[        U5      [        U	5      [        U
5      [        R                  " U5      S[        U5      US.5        GM'     U R                  SSS[        U5      S.5        g)zImport settings from a Samba3 WINS database.

:param samba4_winsdb: WINS database to import to
:param samba3_winsdb: WINS database to import from
r   rT   #               `      zname=%s,type=0x%s
winsRecord0)r%   rV   namerL   
recordTyperecordStatenodeType
expireTimeisStatic	versionIDaddressz
cn=VERSIONVERSIONwinsMaxVersion)r%   rX   rL   
maxVersionN)
itemsr)   r   lentimer]   tupler'   r"   
timestring)samba4_winsdbsamba3_winsdb
version_idr   ttlipsnb_flagsrV   rTyperStatenTypes              r8   import_winsr   E  sL    J(5(;(;(=$#(a
4::c1%a("-4<ED[3x!|3x!|FFT/a'!4uTZZ_7M!M#'::c?1#5#'::c?1#5*6),U*-f+'*5z),)<'*(+J&)
+ 
	,3 )>J \&&6%(_6 7    HKLMc                 
  ^  U 4S jnUR                  5        Hh  nU" U5      nUR                  U5       H  nU" U5        M     UR                  U5      R                  5        H  u  nu  pxUR	                  XgU5        M     Mj     g)zImport a Samba 3 registry database into the Samba 4 registry.

:param samba4_registry: Samba 4 registry handle.
:param samba3_regdb: Samba 3 registry database handle.
c                    > U R                  SS5      u  p[        U   nU R                  SS5      n TR                  X 5      $ )N/rT   \)r   SAMBA3_PREDEF_NAMESreplace
create_key)keypathpredef_name	predef_idsamba4_registrys      r8   ensure_key_exists*import_registry.<locals>.ensure_key_exists  sA    !(sA!6'4	//#t,)))==r   N)keyssubkeysvaluesr   	set_value)	r   samba3_regdbr   key
key_handlesubkey
value_name
value_type
value_datas	   `        r8   import_registryr   ~  s{    >   "&s+
"**3/Ff% 06B6I6I#6N6T6T6V2Z1*  D 7W	 #r   c           	          UR                  U[        R                  SU-  U/S9nUR                  S::  a  US   U   S   $ U R	                  SX45        [
        e! [        R                   a  n[        SU< SU< SU< 35      eS	nAff = f)
zGet posix attributes from a samba3 ldap backend
:param ldbs: a list of ldb connection objects
:param base_dn: the base_dn of the connection
:param user: the user to get the attribute for
:param attr: the attribute to be retrieved
z%(&(objectClass=posixAccount)(uid=%s)))ru   rS   attrsrT   r   z0LDAP entry for user %s contains more than one %szFailed to retrieve attribute z
 for user z, the error is: N)rZ   r"   SCOPE_SUBTREEr[   warningKeyErrorr+   r   )r/   
ldb_objectbase_dnuserattrr`   r7   s          r8    get_posix_attr_from_ldap_backendr     s    s/@/@,S/3-5>BV   E 99>q6$<?"NNMtZN << scgimop qrrss   $A B	-BB	c                 ,   U R                   R                  5       nU R                   R                  S5      nU R                   R                  S5      n	U R                   R                  S5      n
U R                   R                  S5      c  U R                   R                  SS5         U R	                  5       nU(       d%  UR                  5       S   nUR                  SU5        U	(       d9  US:X  d  US:X  a  [        S5      eUR                  5       n	UR                  SU	5        Sn UR                  U
5      nU R                   R                  S5      R                  S5      S   R                  5       S:X  ax  U R                   R                  S5      nU R                   R                  S5      nUR!                  U5      nUc  [        S5      eUR#                  S5      R                  S5      nSnOSnSnSnUR%                  5         [&        R(                  " U R                   R                  S5      5        U R+                  5       n [&        R,                  " 5       n UR3                  SU
-  5      nUR4                  R                  5       u  nnUR7                  S5        UR9                  5       nUR7                  S 5        UR;                  5       n0 nU GH  nUR<                  R                  5       u  nnUU:X  a  UU:  a  US!-   nUR>                  [@        RB                  :X  a6   URE                  UR<                  5      nUU[        UR<                  5      '   M  UR>                  [@        RJ                  :X  a6   URM                  UR<                  5      nUU[        UR<                  5      '   M  UR>                  [@        RN                  :X  a  UR<                  R                  5       u  nnU[P        RR                  " [P        RT                  5      :w  a  URG                  S#URH                  5        GM\   URE                  UR<                  5      nUU[        UR<                  5      '   GM  URG                  S$URH                  UR<                  UR>                  5        GM     UR7                  S%5        URW                  S5      n 0 n!0 n"Sn#U  GH  n$U(       a  UU$S&   :X  a  M  U$S'   n%U$S&   S:  a  UR7                  S(U$S&   U%5        M<  U$S&   U:  a  U$S&   S!-   nUR3                  U%5      n&U&RX                  [Z        R\                  [Z        R^                  -  [Z        R`                  -  [Z        Rb                  -  -  n'U'[Z        R`                  :X  aM  URG                  S)U%SS* -  5        U&RX                  [Z        R`                  ) -  [Z        R^                  -  U&l,        GOU'[Z        Rb                  :X  a  URG                  S+U%SS* -  5        GM=  U'[Z        R^                  :X  a   U%S*   S,:w  a  URG                  S-U%-  5        GMq  U'[Z        R\                  [Z        R^                  -  :X  aB  U%S*   S,:X  a9  URG                  S.U%-  5        U&RX                  [Z        R\                  ) -  U&l,        GOU'[Z        R\                  [Z        R`                  -  :X  aA  U%S*   S,:X  a8  URG                  S/U%-  5        U&RX                  [Z        R\                  ) -  U&l,        OU'S:X  a,  U%S*   S,:w  a#  U&RX                  [Z        R\                  -  U&l,        OU'[Z        R\                  :X  d  U'[Z        R^                  :X  a  OV[        S0U%U&RX                  [Z        R\                  [Z        R^                  [Z        R`                  [Z        Rb                  4-  5      eU&U!U%'    URe                  U&R4                  5      S   U"U%'   U#(       d  U%Rm                  5       S1:X  a  U%n#U%Rm                  5       S2:X  a  U%n# URo                  U&5      n(U( Hr  n[        U5      U;   aG  U&R4                  U[        U5         ;  a)  U[        U5         Rq                  U&R4                  5        MW  MY  U&R4                  /U[        U5      '   Mt     GM     UR7                  S4U5        [        U V)s/ s H  n)U)RH                  PM     sn)5      n*[        U  V+s/ s H  n+U+S'   PM
     sn+5      n,U*Rs                  U,5      n-U-(       a9  UR/                  S55        U- H  n.UR/                  S6U.-  5        M     [        S75      e[        U V)s/ s H  n)[        U)R<                  5      PM     sn)5      n/[u        U5      [u        U/5      :w  a  [        S85      e[        U  V+s/ s H  n+S9UU+S&   4-  PM     sn+5      n0[u        U 5      [u        U05      :w  a  [        S:5      eU/Rs                  U05      n1U1(       aB  UR/                  S;5        U1 H   nUR/                  S6[        U5      -  5        M"     [        S<5      e0 n20 n30 n4U(       a  [w        5       n5U5Ry                  U R                   5        U5R{                  U5        U5R}                  U5        U R                   R                  S5      R                  SS!5      S!   R                  S=5      n6U6R                  5        H  n7 [        U7U5S>9n8  O   UR7                  SA5        URW                  S5      n U  H  n$U$S'   n%U%U"R                  5       ;   d  M   U(       a  [        UW8WU%SB5      U2U%'   O$[f        Rh                  " U%5      R                  U2U%'     U(       a  [        UW8WU%SC5      U3U%'   O$[f        Rh                  " U%5      R                  U3U%'     U(       a  [        UW8WU%SD5      U4U%'   M  [f        Rh                  " U%5      R                  U4U%'   M     UR7                  SE5        Sn9 U R                  5       n9US:X  d  US:X  d  SGnU#(       a  [        SHSI5      n:OSn:[        X40 SJU_SU	_SKU_SLU_SMU_SNU_SOU:_SP[        R                  _SQU
Rm                  5       _SRU_SSU_ST[        _SUU_SVU_SWS_SXU_SYS_6n;U;R                  U5        UR7                  SZ5        U9(       a)  [        [        U;R                  R                  5      U95        UR7                  S[5        [        U;R                  UU5        UR7                  S\5        [        U;R                  X5        [        R                  " 5       n<U<R                  U;R                   R                  5        U<R                  SU;R                   R                  S5      5        U<R                  S]U;R                   R                  S]5      5        U<R                  S^U;R                   R                  S^5      5        [&        R                  " U<R                  S5      5      n=U;R                  R                  5         UR7                  S_5         UR7                  S`5        U H  n)U)R                  S*:w  d  M  [        U;R                  U)U5        [        U;R                  U)R<                  U)R                  SaU5        [        U;R                  U)R<                  URm                  5       SaUSb9  M     UR7                  Sc5        U;R                  R                  5         UR7                  Sd5        UR7                  Se5        U! GH  n%U%Rm                  5       S2:X  an  U!U%   R4                  [S        [        U5      Sf-   5      :w  aF  UR/                  SgU!U%   R4                  < Sh[S        [        U5      Sf-   5      < 35        [        Si5      eU%Rm                  5       S1:X  aK  U!U%   R4                  [S        [        U5      Sf-   5      :X  a  URG                  Sj5        OURG                  Sk5        U=R                  U!U%   5        U%U";   d  GM  [        U;R                  U!U%   R4                  U"U%   SlU5        U%U2;   d  GM4  U2U%   c  GM=  U%U3;   d  GMF  U3U%   c  GMO  U%U4;   d  GMX  U4U%   c  GMa  [        U;R                  U!U%   R4                  URm                  5       SlU2U%   U3U%   U4U%   USm9  GM     UR7                  Sn5        U;R                  R                  5          U HL  n)[        U)R<                  5      U;   d  M  [        U;R                  U)U[        U)R<                  5         U5        MN     UR7                  So5        U;R                  R                  5         U#(       a  UR7                  Sp5        U=R3                  S25      n>U!U#   R                  U>ld        U!U#   R                  (       a  U!U#   R                  U>le        U!U#   R                  U>lf        U!U#   R                  (       a  U!U#   R                  U>lg        U=R                  U>5        UR7                  SqU#5        U;R                  Sr:X  a  [        U;R                  U;R                  R                  U;R                  R                  U;R                  R                  [P        RR                  " U;R                  5      U;R                  R                  U;R                  R                  U;R                   U5	        gg! [
         a1  n[        SU R                  S5      < S	[        U5      < S
35      eSnAff = f! [         a    Sn GNf = f! [&        R.                   a    [1        SU-  5      ef = f! [&        R.                   a    Sn GNf = f! [&        R.                   a4  nURG                  S"URH                  UR<                  U5         SnAGM   SnAff = f! [&        R.                   a4  nURG                  S"URH                  UR<                  U5         SnAGMK  SnAff = f! [&        R.                   a4  nURG                  S"URH                  UR<                  U5         SnAGM  SnAff = f! [&        R.                   a:     [f        Rh                  " U%5      Rj                  U"U%'    GN! [         a      GNf = ff = f! [&        R.                   a*  nURG                  S3U%U&R4                  U5         SnAGM4  SnAff = fs  sn)f s  sn+f s  sn)f s  sn+f ! [        R                   a  n[        S?U7< S@U< 35      eSnAff = f! [         a     G	N[         a     G	Nf = f! [         a     G	N[         a     G	Nf = f! [         a     G
M}  [         a     G
M  f = f! [
         a&  nURG                  SF[        U5      5         SnAG	NSnAff = f!   U;R                  R                  5         e = f!   U;R                  R                  5         e = f)szUpgrade from samba3 database to samba4 AD database

:param samba3: samba3 object
:param logger: Logger object
:param targetdir: samba4 database directory
:param session_info: Session information
	workgrouprealmznetbios namezldapsam:trustedNyeszCould not open 'zsecrets.tdbz ', the Samba3 secrets database: zN.  Perhaps you specified the incorrect smb.conf, --testparm or --dbdir option?r   z6No workgroup specified in smb.conf file, assuming '%s'ROLE_DOMAIN_BDCROLE_DOMAIN_PDCzNo realm specified in smb.conf file and being a DC. That upgrade path doesn't work! Please add a 'realm' directive to your old smb.conf to let us know which one you want to use (it is the DNS name of the AD domain you wish to create.z2No realm specified in smb.conf file, assuming '%s'i  zpassdb backend:ldapsamzldap suffixzldap admin dnzldapsam passdb backend detected but no LDAP Bind PW found in secrets.tdb for user %s.  Please point this tool at the secrets.tdb that was used by the previous installation.zutf-8 TFzprivate dirz(Can't find domain sid for '%s', Exiting.z%s$zExporting account policyzExporting groupsrT   z4Ignoring group '%s' %s listed but then not found: %szOIgnoring 'well known' group '%s' (should already be in AD, and have no members)z+Ignoring group '%s' %s with sid_name_use=%dzExporting usersr   account_namez-  Skipping wellknown rid=%d (for username=%s)zk  Demoting BDC account trust for %s, this DC must be elevated to an AD DC using 'samba-tool domain dcpromo'r   zZ  Skipping inter-domain trust from domain %s, this trust must be re-created as an AD trust$z  Skipping account %s that has ACB_WSTRUST (W) set but does not end in $.  This account can not have worked, and is probably left over from a misconfiguration.z  Fixing account %s which had both ACB_NORMAL (U) and ACB_WSTRUST (W) set.  Account will be marked as ACB_WSTRUST (W), i.e. as a domain memberz  Fixing account %s which had both ACB_NORMAL (U) and ACB_SVRTRUST (S) set.  Account will be marked as ACB_WSTRUST (S), i.e. as a domain membera  Failed to upgrade due to invalid account %s, account control flags 0x%08X must have exactly one of
ACB_NORMAL (N, 0x%08X), ACB_WSTRUST (W 0x%08X), ACB_SVRTRUST (S 0x%08X) or ACB_DOMTRUST (D 0x%08X).

Please fix this account before attempting to upgrade again
rootadministratorz)Ignoring group memberships of '%s' %s: %szNext rid = %dz4Following names are both user names and group names:z   %sz5Please remove common user/group names before upgrade.z9Please remove duplicate group sid entries before upgrade.z%s-%uz8Please remove duplicate user sid entries before upgrade.z,Following sids are both user and group sids:z3Please remove duplicate sid entries before upgrade.")credentialsz!Could not open ldb connection to z, the error message is: zExporting posix attributeshomeDirectoryr>   r?   zReading WINS databasez'Cannot open wins database, Ignoring: %sNONE       	targetdirdomain	domainsidnext_riddc_rid	adminpassdom_for_fun_levelhostnamemachinepass
serverrole
samdb_filluseeadbdns_backenduse_rfc2307	use_ntvfsskip_sysvolaclzImporting WINS databasezImporting Account policyzImporting idmap databasezstate directoryzlock directoryzAdding groupszImporting groupsrM   )r-   rB   rC   rD   r/   z+Committing 'add groups' transaction to diskzAdding userszImporting usersz-500z8User 'Administrator' in your existing directory has SID z, expected it to be zPUser 'Administrator' in your existing directory does not have SID ending in -500z,User root has been replaced by AdministratorzbUser root has been kept in the directory, it should be removed in favour of the Administrator userr<   )r-   rB   rC   rD   rE   rF   rG   r/   zAdding users to groupsz4Committing 'add users to groups' transaction to diskz"Setting password for administratorz<Administrator password has been set to password of user '%s'z"active directory domain controller)qlpserver_rolegetsetget_secrets_dbrh   r   privatedir_pathr'   domainsr   upperget_machine_passwordr   r   stripget_ldap_bind_pwdecodecloser
   set_secrets_dir
get_sam_dbget_global_sam_siderror	Exceptiongetsampwnamuser_sidinfoget_account_policyenum_group_mappingrB   r   r   r   enum_aliasmemr,   r   SID_NAME_DOM_GRPenum_group_membersr   r   r   r   search_users	acct_ctrlr   
ACB_NORMALACB_WSTRUSTACB_SVRTRUSTACB_DOMTRUST	sid_to_idpwdgetpwnampw_uidlowerenum_group_membershipsappendintersectionr   r   guessset_bind_dnset_passwordr   r"   r+   r   r   pw_dir
IndexErrorpw_shellpw_gidget_wins_dbr   r   r   DS_DOMAIN_FUNCTION_2003r	   report_loggerr   pathswinsdbr9   r-   rr   idmaps3paramget_contextload
configfilePDBtransaction_startgidr   rQ   rH   transaction_canceltransaction_commitadd_sam_accountr   	nt_passwdlanman_passwdpass_last_set_time
pw_historyupdate_sam_accountr   sysvolroot_uidroot_gidr   names	dnsdomaindomaindn)?rn   r/   r   session_infor   r   r  r   
domainnamer   netbiosname
secrets_dbr7   r   r   r   ldapuserldappassldaps3dbr   machineacct_
machineridr.   	grouplistgroupmembersrx   rB   r   r   r   userlistuserdatauids
admin_userentryusernamer   	acct_typegroup_membershipsggroup_namesu
user_namescommon_namesr   
group_sids	user_sidscommon_sidshomesshellspgidscredsurlsurlr   r   r   result
new_lp_ctx	s4_passdbadmin_userdatas?                                                                  r8   upgrade_from_samba3ru    s    &&(J{+JIIMM'"E))--/Kyy}}&'/		'/X**,
 '')!,
O!	# **j<M.M#  %P  Q  Q$$&ENNO " H 55kB yy}}%&,,S1!4::<	I))--.99==1..x8#  %S  T  T??7+11&9  699==78DQ--/	
5&&u{':; $,,224: KK*+$$&F KK"#'')IL99??$S)h7 !3!33,,UYY7/6S^,
 3#7#7711%))</6S^,
 3#7#77#(99??#4 ]C!1!1(2F2F!GGm!MM+,,UYY7/6S^, KKEuyy%2D2DFQ V KK!"  #HHDJ*e4(<$KKGuW_`<8#U|a'H)^^t'+'7'7(8'+'8'8(9 (,'8'8(9 :	 )))KK  F  IQ  RU  SU  IV  V  W"nn0A0A/AATEUEUUDN$+++KKtw  AD  BD  xE  E  F4++,"1DKK  z  }E  E  F4??T-=-==>8B<SVCVKK  i  lt  t  u"nn/??DN4??T->->>?HRLTWDWKK  j  mu  u  v"nn/??DN!^ 3"nnt>DN4??*i4;K;K.K $ %
 (0'+8H8H$J[J[]a]n]n'p%p q q "	!^^DMM:1=DN hnn.&8!J>>.!J
	4 $ ; ;D A*u:-}}LU,DD$SZ077F E 15LU, +E X KK* )4)Qqyy)45K:Aa':;J++J7LKL DLL4( ! WXX )4)Qc!%%j)45J
9~Z( [\\hGhW	1U844hGHI
8}I& Z[[)))4KCDCLL3s8+,  UVV EFEFII(#8$yy}}-.44S!<Q?EEcJ::<C %8
    KK,-  #H(tyy{"&Fvz[bdln}&~E(O&)ll8&<&C&CE(O'GPZ\cemo{'|F8$'*||H'='F'FF8$&Fvz[bdlny&zE(O&)ll8&<&C&CE(O7 B KK'(MG**, ++z=N/N
 ,R4		 v A!*A27A@JA!*A5=A )A 5>A *.)E)E	A
 !, 1 1 3A
 BMA #-A :CA  'A 5@A NRA "+A <@AF   KK)*C++,m< KK*+fllFF3 KK*+v. $$&JOOFII(()NN=&))--">?NN$fiimm4E&FGNN#VYY]]3C%DE 

:>>*:;<I LL""$
KK &'Auu{,V\\1fE(quuaee]TZ[fllIYIYI[fs  }C  D  KK=>
LL##%
KK KK!">>.!**gc)nv6M.NNs{  }E  tF  tO  tO  QX  Y\  ]f  Yg  jp  Yp  Qq  r  s'(z{{>>v%!**gc)nv6M.NNJK  A  B!!(8"45t$V\\8H3E3N3NPTU]P^`mouvE!h(CF")9)EE!h(Cfll8J8S8S_i_o_o_q  }J  QV  W_  Q`  hn  ow  hx  D  EM  N  W]  ^# & KK()
LL""$A155z\)"6<<LQUU4LfU  KKFG
LL##% 89"..?#+J#7#A#A J--+3J+?+M+MN(,4Z,@,S,S)J**(0(<(G(GN%$$^4RT^_AAV\\6<<#6#6\\**FLL,A,A%%f&6&679O9O\\**FIIy	B B[  X  io  i  i  @M  iN  PS  TU  PV  !W  X  	XX*  4 << QBZOPPQ << 
0 << R!MM599a9 << R!MM599a9 << R!MM599a9H || 	!$h!7!>!>X 	& || 	4KKC $--4 4	4 5: 5 H. << t'knpq(rsst           G=s1vFFG@'')J'')s  %AK8 $AL6 AM	 AM/  3AN43AO,3AP"8!AQ-B	AR>6AS?ATAT	AT
AT,AU#AU+AU#AU*AU<#AU< AV >$AW &A7AW C<AW. D2AW. K8
AL3L,AL.L.AL3L6AMMAMM	#AM,M/AN	NAN	NAON (AOOAOOAPO+(APPAPP"AQ*P6(AQ%Q%AQ*Q-AR;R#AR(R(
AR7R2AR;R6AR7R7AR;R>AS<SAS7S7AS<TAT?T'AT:T:AT?U
AUU	AUUAUU
AU9U,	AU9U8AU9U<
AVV
	AVVAVV
AWV%AWWAWWAW+W.AX)NNN)NFNF),__doc____docformat__r"   r   r%  sambar   r   samba.provisionr   r   r   samba.provision.commonr	   samba.samba3r
   r   r9  samba.dcerpcr   r   r   samba.dcerpc.securityr   samba.credentialsr   r   	samba.ndrr   r   r   r9   rH   rQ   ra   rr   r   r   r   HKEY_LOCAL_MACHINEr   r   r   ru   r   r8   <module>r     s   & :" 
  
  F F ,  ) , , ) )    *5Bp CG%)D2>(6V$FN5Vpw217j 	++ 
E(, AECHfBr   