1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00

r15360: Fix bug # 3741. One more place where the algorithmic mapping needs to stay.

Volker
This commit is contained in:
Volker Lendecke 2006-04-30 14:34:30 +00:00 committed by Gerald (Jerry) Carter
parent 46d3c7668b
commit 898948d654

View File

@ -128,11 +128,30 @@ BOOL lookup_name(TALLOC_CTX *mem_ctx,
* the expansion of group names coming in from smb.conf
*/
if ((flags & LOOKUP_NAME_GROUP) &&
(lookup_unix_group_name(name, &sid))) {
domain = talloc_strdup(tmp_ctx, unix_groups_domain_name());
type = SID_NAME_DOM_GRP;
goto ok;
if (flags & LOOKUP_NAME_GROUP) {
struct group *grp;
/* If we are using the smbpasswd backend, we need to use the
* algorithmic mapping for the unix group we find. This is
* necessary because when creating the NT token from the unix
* gid list we got from initgroups() we use gid_to_sid() that
* uses algorithmic mapping if pdb_rid_algorithm() is true. */
if (pdb_rid_algorithm() && ((grp = getgrnam(name)) != NULL) &&
(grp->gr_gid < max_algorithmic_gid())) {
domain = talloc_strdup(tmp_ctx, get_global_sam_name());
sid_compose(&sid, get_global_sam_sid(),
pdb_gid_to_group_rid(grp->gr_gid));
type = SID_NAME_DOM_GRP;
goto ok;
}
if (lookup_unix_group_name(name, &sid)) {
domain = talloc_strdup(tmp_ctx,
unix_groups_domain_name());
type = SID_NAME_DOM_GRP;
goto ok;
}
}
/* Now the guesswork begins, we haven't been given an explicit