[Samba] convert passwords samba3 smbpasswd to samba4

Zhuchenko Valery zvn at belkam.com
Wed May 27 03:50:37 MDT 2015


Hi All!

I want update samba4 user passwords with smbpasswd, taken from samba3.
After reading this post
https://lists.samba.org/archive/samba/2013-April/172628.html I'm create
similar script, and when run it, I can't login to samba4 resources with
testaccount, but to samba3 resources I can do it.

Where I'm wrong?

-------------------


import sys
import binascii
import time

from samba import Ldb, registry
from samba.param import LoadParm
from samba.samba3 import passdb
from samba.samba3 import param as s3param
from samba import dsdb

def HexToByte( hexStr ):
    bytes = []
    hexStr = ''.join( hexStr.split(" ") )
    for i in range(0, len(hexStr), 2):
        bytes.append( chr( int (hexStr[i:i+2], 16 ) ) )
    return ''.join( bytes )

new_lp_ctx = s3param.get_context()
new_lp_ctx.load("/etc/samba/smb.conf")
new_lp_ctx.set("private dir", "/var/lib/samba/private")

s4_passdb = passdb.PDB(new_lp_ctx.get("passdb backend"))

new_userdata = s4_passdb.getsampwnam("testaccount")
if new_userdata.username:
    print new_userdata.username

if new_userdata.nt_passwd:
    print binascii.hexlify(new_userdata.nt_passwd)

new_userdata.nt_passwd = HexToByte("68434D070B60D728857018C972BDB75E")

s4_passdb.update_sam_account(new_userdata)

-------------------


samba version 4.1.17

Thank you, Valery.


More information about the samba mailing list