[Samba] Failing to add XP SP3 client to Samba domain
Steve Cayford
cayfo001 at umn.edu
Mon Sep 21 14:27:07 MDT 2009
Steve Cayford wrote:
> Wes Deviers wrote:
>> Are you using OpenLDAP? Is it possible that during the Debian
>> upgrade, the OpenLDAP schema files got changed, and so it's failing
>> because updates would violate the schema (perhaps, because, the samba
>> schema file is now missing or not being loaded..?)
>>
>> Somewhere in there, I think Debian switched from using OpenLDAP with
>> schema configuration files to schema-over-LDAP updates. If it tried to
>> convert your schema and failed, or even just flat-out ignored it, that
>> would cause the problem.
>>
>> Turn slapd's logging to debug or sniff the LDAP transaction when you
>> try to join the machine and see what that gets you?
>>
>> Wes
>
> That sounds likely. I'll look into it.
I've done some more digging and realized two things:
1. My "add machine script" is "smbldap-useradd -w '%u'", but the -w switch
only creates a posix machine account. Apparently what I want is the -i
switch which is not listed on the man page.
2. Using the -i switch and running smbldap-useradd from the command line
gives me the error:
"failed to add entry: structural object class modification from 'account'
to 'inetOrgPerson' not allowed at /usr/sbin/smbldap-useradd line 311,
<STDIN> line 2."
Looking at smbldap-useradd I can see that it first creates a posix machine
account with this code in smbldap_tools.pm:
my $add = $ldap->add (
"uid=$user,$config{computersdn}",
attr => [
'objectclass' => [
'top', 'account', 'posixAccount'
],
'cn' => "$user",
'uid' => "$user",
'uidNumber' => "$uid",
'gidNumber' => "$gid",
'homeDirectory' => '/dev/null',
'loginShell' => '/bin/false',
'description' => 'Computer',
'gecos' => 'Computer',
]
);
Then it tries to modify the entry with this code in smbldap-useradd which
is where it dies:
my $modify = $ldap_master->modify (
"uid=$userName,$config{computersdn}",
changes => [
replace => [
objectClass => [
'top', 'person', 'organizationalPerson',
'inetOrgPerson', 'posixAccount', 'sambaSAMAccount']],
add => [sambaLogonTime => '0'],
add => [sambaLogoffTime => '2147483647'],
add => [sambaKickoffTime => '2147483647'],
add => [sambaPwdCanChange => '0'],
add => [sambaPwdMustChange => '2147483647'],
add => [sambaPwdLastSet => "$date"],
add => [sambaAcctFlags => '[I ]'],
add => [sambaLMPassword => "$lmpassword"],
add => [sambaNTPassword => "$ntpassword"],
add => [sambaSID => "$user_sid"],
add => [sambaPrimaryGroupSID => "$config{SID}-515"]
]
);
Looking at all the other entries I see no other accounts with an object
class of "account" so this seems to be the problem. But I don't know what
to do about it.
-Steve
More information about the samba
mailing list