[Samba] Cannot browse mode 0700 directories from Windows with security=ads
Rowland penny
rpenny at samba.org
Mon Apr 18 17:56:48 UTC 2016
On 18/04/16 17:48, Ian Collier wrote:
> On Fri, Apr 15, 2016 at 11:43:03PM +0100, Rowland penny wrote:
>> Lets see if I can describe how it is supposed to work:
>> You run smbd, this gives you fileserving capabilities but you need users &
>> groups. The users & groups in /etc/passwd and /etc/group are unknown to
>> Samba, so you need to make them known to Samba. You can do this in few ways,
>> but when you use 'security = ADS' , it is usually done by getting them from
>> AD. You can do this with sssd or by running winbind, or by using nlscd. The
>> first two ways can be done without modifying AD, but the last would require
>> you to add uidNumber & gidNumber attributes.
> nslcd is running, in fact. However, the AD server does not have uidNumber
> and gidNumber attributes for the users in question. Maybe this is part
> of the problem?
nslcd relies on uidNumber & gidNumber attributes, so if they don't
exist, as far as Unix is concerned the user or group doesn't exist.
>
> I'm confused as to how it is so nearly working at the moment, however.
> There must be some translation going on between the Windows users who
> log in and the Unix file permissions. Indeed, "wbinfo -S" can give me
> the Unix uid of a Windows user.
Can you give us an example of one of these Unix uids
>
> The problem we have is that Unix group permissions are not being respected.
> I think that "force group = +groupname" goes most of the way to remedy
> this, but it's a hack. But again, why does that work if the Unix groups
> are unknown to Samba?
Problem might be that the GID the group is getting from somewhere isn't
the one that is expected i.e. if the group exists in /etc/group and has
the gid '1234' and the group in AD is being given '5678', then the group
in AD isn't the same group as the one in /etc/group, even if they have
the same name.
> Advice from elsewhere was to use "username map script = /bin/echo".
> Could you explain what that actually does? As noted in the beginning,
> this does actually solve the group access problem but now forbids
> people from accessing private files that they own.
What this seems to do, is to use the groups in /etc/group rather than
AD, I have never used it myself, so don't know if it is a good idea or
not. I think your problem with user access is down to the same problem
as the group one above, your users in AD are being given a different uid
to the users in /etc/passwd
>> Have you tried setting up the machine as a standalone server instead ?
>> commenting the 'security' line in smb.conf will do this. The only downside
>> to this would that you would have to keep the passwords in sync and add all
>> the users to Samba on the standalone machine with 'smbpasswd -a user'
> That is a *really big* downside, to be honest. The reason for using
> security=ads is so that our Windows users can use their existing
> credentials to access the service. Also, our passwd file contains
> over a thousand users. The majority of them won't use Samba, but...
> which ones?
You really only need to use Samba for windows users, Unix users can just
be created in /etc/passwd on the Unix machine, but as you say, which
need to be in /etc/passwd and which ones need to be in AD ?
Normal practise with an AD domain is to store all users and groups in
AD, then give the users that actually need to log into the machine, all
the Unix attributes and the windows ones just a uidNumber, you would
also need to give Domain Users a gidNumber. You could then use nlscd,
sssd or winbind to make the users known to the Unix OS.
The bottom line is that all users & groups need to be know to the Unix
OS, i.e. 'getent passwd auser' needs to show the info for 'auser':
auser:*:11107:10513:A User:/home/auser:/bin/bash
And 'getent group Domain\ Users' should also show the info for the group:
domain users:x:10513:
I know this doesn't really help with your problem, it worked before the
update, but didn't after. Have you tried adding ' ldap server require
strong auth = no' to the global part of smb.conf ?, this seems to have
worked for some people.
Rowland
>
> Ian Collier.
>
More information about the samba
mailing list