[Samba] Back with my UID problems

Nigel W nigel.w at nosun.ca
Thu Feb 26 23:23:39 MST 2015


Hello Brett,

On Thu, Feb 26, 2015 at 9:01 PM, Brett Wynkoop <wynkoop+samba at wynn.com>
wrote:

> I think I am still at a loss.  after having a look at that page I added
>
>
>         idmap uid = 34-1000
>
> to the smb4.conf file.  I then deleted user wynkoop, restarted samba
> and added user wynkoop again.  The UID incremented from where it had
> previously been.  Just to make sure I did the whole delete and add
> again another time.  The results of uploading files from smbclient are
> below:
>
> root at prd2:/usr/local/etc # ls -l /archive/test
> total 5
> -rw-r--r--  1 3000014  wheel  6148 Feb 22 03:37 .DS_Store
> -rw-r--r--  1 3000013  wheel   381 Feb 26 22:55 bar
> -rw-r--r--  1 3000012  wheel   381 Feb 26 22:45 foo
> -rw-r--r--  1 3000011  wheel   381 Feb 26 18:18 profile
> root at prd2:/usr/local/etc #
>
> It looks like the ids in the 3 million range are the local ids generated
by winbind when it needs a number.  I think the those are controlled by:

   idmap config *:backend = tdb
   idmap config *:range = 2000-9999

in the example on the wiki. But I have not tested this. At that though, in
this case, I don't think we care about the range of the auto generated ids
anyway.

It had been too long since I fiddled with this, and I couldn't remember, so
I just tested on my scratch domain and I was able to get arbitrary ids to
work.

I used the following smb.conf:
[global]
        workgroup = SAMDOM
        realm = samdom.example.com
        netbios name = ED1A5849-1CDE-4
        server role = active directory domain controller

        idmap_ldb:use rfc2307 = yes

idmap config SAMDOM:backend = ad
idmap config SAMDOM:schema_mode = rfc2307
idmap config SAMDOM:range = 100-99999

winbind nss info = rfc2307
winbind trusted domains only = no
winbind use default domain = yes
winbind refresh tickets = Yes

[netlogon]
        path = /data/state/lib/samba/sysvol/samdom.example.com/scripts
        read only = No

[sysvol]
        path = /data/state/lib/samba/sysvol
        read only = No

[home]
         path = /data/state/home/
         read only = No

It is a mostly default .conf file with references from:
https://wiki.samba.org/index.php/Using_RFC2307_on_a_Samba_DC
https://wiki.samba.org/index.php/Setting_up_a_home_share

With the above config, I created the user 'two' with the following command:

samba-tool user add two Passw0rd --uid-number=101 --gid-number=1\
    --login-shell=/bin/bash --home-directory=/home/two

One thing that tripped me up, --uid is for the username, --uid-number is
what we are interested in.


[root at ed1a5849-1cde-43ac-b7cd-4e165f9a6435 ~]# ls -l /data/state/home/two
total 1
-rwxr--r-- 1 two domain users 0 Feb 27 05:56 test.file
[root at ed1a5849-1cde-43ac-b7cd-4e165f9a6435 ~]# ls -ln /data/state/home/two
total 1
-rwxr--r-- 1 101 1 0 Feb 27 05:56 test.file

In my testing, I also found that there is a cache (or multiple) that I have
not found for these ids, and it seems from my testing that once a username
gets assigned an auto id, it will never get anything else, restarting samba
doesn't seem to help.  I found one cache in the samba datafolder called
winbind_cache.tdb but removing that doesn't seem to fix it either.  I do
recall some mention of this on this list in the last month, I cannot find
the email.  As I am not a developer of Samba, I have no idea where to look
from here to resolve this.


More information about the samba mailing list