Brian Nelson
2002-May-13 16:49 UTC
[Samba] smbpasswd + ldap -- changing stuff it shouldn't
using samba with --enable-ldapsam... When changing a user's password with sampasswd 'username', I get this error: failed to modify user with uid = bnelson with: Insufficient access Insufficient 'write' privilege to the 'uid' attribute of entry 'uid=bnelson,ou=People [...]'. Looking at a snoop of the network, it seems like smbpasswd is trying to modify ALL of these attributes: uid pwdLastSet logonTime logoffTime kickoffTime pwdCanChange pwdMustChange displayName cn rid primaryGroupID lmPassword ntPassword acctFlags Most of these I understand, but some (cn,uid,displayname,rid, and primarygroupID) should not be being changed just to update the password. I understand that sampasswd can be used to add users to ldap, which is ok, and that those attributes would be added/modified then, but I dont plan to do that, and i only want the sambaadmin account to be able to modify the samba-related stuff (not uid or cn,etc). My thought is this: those five attributes should be modified only in the -a (add user) mode, and even then, ONLY if they do not allready exist (ie a completely new/blank user). Running a -a against an allready existing posixuser (or otherwise) should only add the samba bits and the sambaaccount objectclass, and still not touch uid or cn, as these are often authoritatively controlled elseware. Also, attribs that arent different shouldnt really be re-modified. IE only change them if the new value is different. It looks like smbpasswd pushes most of this stuff unconditionally. This seems to be the case with objectclass, as it only seems to attempt to add the sambauser class if it is NOT allready there. This is just my opinion :) Please tell me if there is some reasoning I am missing.. -Brian