[Samba] samba-tool classicupgrade throws uncaught exception
Scott Goodwin
scott at mimicsimulation.com
Mon Aug 19 16:01:15 MDT 2013
I have a new server running CentOS 6.4 x64, which will serve as our new
Samba4 server. It is set up in a test environment, and I've copied over the
tdb files and the smb.conf file from our samba3 server (Same OS and
version).
I'm trying to do an in-place upgrade on the copied files, but keep hitting
an assert / uncaught exception during the upgrade:
# /usr/local/samba/bin/samba-tool domain classicupgrade --dbdir=/root/smb3
--use-xattrs=yes --realm=MYDOMAIN.COM --verbose /root/smb3/smb.conf
Reading smb.conf
Provisioning
Exporting account policy
Exporting groups
Exporting users
Ignoring group memberships of 'testuser' S-1-5-21-XXXXXXXXXXXXXXXXXX-1065:
Unable to enumerate group memberships, (-1073741724,No such user)
Skipping wellknown rid=501 (for username=nobody)
Ignoring group memberships of 'TEST-PC$' S-1-5-21-XXXXXXXXXXXXXXXXXX-1097:
Unable to enumerate group memberships, (-1073741724,No such user)
Ignoring group memberships of 'testuser2' S-1-5-21-XXXXXXXXXXXXXXXXXX-1075:
Unable to enumerate group memberships, (-1073741724,No such user)
Next rid = 9001
Exporting posix attributes
Reading WINS database
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=mydomain,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Setting acl on sysvol skipped
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=mydomain,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at
/usr/local/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: myserver
NetBIOS Domain: MYDOMAIN
DNS Domain: mydomain.com
DOMAIN SID: S-1-5-21-XXXXXXXXXXXXXXXXXX
Importing WINS database
Importing Account policy
Importing idmap database
ERROR(assert): uncaught exception
File
"/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/__init__.py",
line 175, in _run
return self.run(*args, **kwargs)
File
"/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/domain.py",
line 1318, in run
useeadb=eadb, dns_backend=dns_backend, use_ntvfs=use_ntvfs)
File "/usr/local/samba/lib64/python2.6/site-packages/samba/upgrade.py",
line 868, in upgrade_from_samba3
import_idmap(result.idmap, samba3, logger)
File "/usr/local/samba/lib64/python2.6/site-packages/samba/upgrade.py",
line 214, in import_idmap
samba3_idmap = samba3.get_idmap_db()
File
"/usr/local/samba/lib64/python2.6/site-packages/samba/samba3/__init__.py",
line 402, in get_idmap_db
return IdmapDatabase(self.statedir_path("winbindd_idmap.tdb"))
File
"/usr/local/samba/lib64/python2.6/site-packages/samba/samba3/__init__.py",
line 59, in __init__
self._check_version()
File
"/usr/local/samba/lib64/python2.6/site-packages/samba/samba3/__init__.py",
line 142, in _check_version
assert fetch_int32(self.tdb, "IDMAP_VERSION\0") == IDMAP_VERSION_V2
The error indicates an idmap problem, so on advise of another poster, I
renamed my winbindd_idmap.tdb file, then tried again (after deleting the
generated tdb files and smb.conf). This, however, caused another error:
...
...
Cannot open idmap database, Ignoring: [Errno 2] No such file or directory
Importing groups
Could not add group name=Domain Admins ((68, "samldb: Account name
(sAMAccountName) 'Domain Admins' already in use!"))
Could not modify AD idmap entry for sid=S-1-5-21-XXXXXXXXXXXXXXXXXX-1057,
id=502, type=ID_TYPE_GID ((32, "Base-DN
'<SID=S-1-5-21-XXXXXXXXXXXXXXXXXX-1057>' not found"))
Could not add posix attrs for AD entry for
sid=S-1-5-21-XXXXXXXXXXXXXXXXXX-1057, ((32, "Base-DN
'<SID=S-1-5-21-XXXXXXXXXXXXXXXXXX-1057>' not found"))
Could not add group name=Domain Users ((68, "samldb: Account name
(sAMAccountName) 'Domain Users' already in use!"))
Could not modify AD idmap entry for sid=S-1-5-21-XXXXXXXXXXXXXXXXXX-1066,
id=100, type=ID_TYPE_GID ((32, "Base-DN
'<SID=S-1-5-21-XXXXXXXXXXXXXXXXXX-1066>' not found"))
Could not add posix attrs for AD entry for
sid=S-1-5-21-XXXXXXXXXXXXXXXXXX-1066, ((32, "Base-DN
'<SID=S-1-5-21-XXXXXXXXXXXXXXXXXX-1066>' not found"))
Importing users
User root has been kept in the directory, it should be removed in favour of
the Administrator user
Adding users to groups
ERROR(<class 'samba.provision.ProvisioningError'>): uncaught exception -
ProvisioningError: Could not add member 'S-1-5-21-XXXXXXXXXXXXXXXXXX-1002'
to group 'S-1-5-21-XXXXXXXXXXXXXXXXXX-1057' as either group or user record
doesn't exist: Base-DN '<SID=S-1-5-21-XXXXXXXXXXXXXXXXXX-1057>' not found
File
"/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/__init__.py",
line 175, in _run
return self.run(*args, **kwargs)
File
"/usr/local/samba/lib64/python2.6/site-packages/samba/netcmd/domain.py",
line 1318, in run
useeadb=eadb, dns_backend=dns_backend, use_ntvfs=use_ntvfs)
File "/usr/local/samba/lib64/python2.6/site-packages/samba/upgrade.py",
line 913, in upgrade_from_samba3
add_users_to_group(result.samdb, g, groupmembers[str(g.sid)], logger)
File "/usr/local/samba/lib64/python2.6/site-packages/samba/upgrade.py",
line 316, in add_users_to_group
raise ProvisioningError("Could not add member '%s' to group '%s' as
either group or user record doesn't exist: %s" % (member_sid, group.sid,
emsg))
I'm wondering if my winbindd_idmap.tdb is invalid, as ldbdump
winbindd_idmap.tdb returns nothing, and the tdb file is only 696 bytes. If
this is the issue, can I "rebuild it" on the samba3 server?
Here's the global section of my smb.conf:
workgroup = MYDOMAIN
netbios name = MYSERVER
server string = "Samba4 AD"
interfaces = 192.168.0.0/24
bind interfaces only = Yes
passdb backend = tdbsam
username map = /etc/samba/smbusers
admin users = scott
wins support = Yes
smb ports = 139
time server = Yes
client ntlmv2 auth = Yes
log file = /var/log/samba/log.%m
max log size = 1000
debug uid = Yes
deadtime = 15
socket options = TCP_NODELAY IPTOS_LOWDELAY
show add printer wizard = No
load printers = no
printing = bsd
disable spoolss = yes
printcap name = /dev/null
printcap cache time = 0
add user script = /usr/sbin/useradd -m -g users %u
logon script = logon.bat
logon path =
logon drive = H:
domain logons = Yes
os level = 65
preferred master = Yes
domain master = Yes
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n
*passwd:*all*authentication*tokens*updated*successfully*
pam password change = Yes
Thanks ahead of time for any assistance, and if you need additional info,
let me know.
--scott
More information about the samba
mailing list