r801: Fix from "Jianliang Lu" <j.lu@tiesse.com> to return correct group
authorJeremy Allison <jra@samba.org>
Thu, 20 May 2004 18:28:21 +0000 (18:28 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:51:46 +0000 (10:51 -0500)
types.
Jeremy.
(This used to be commit d97b9146a137d43278f3125bafe8a453da82f4ce)

source3/passdb/passdb.c
source3/passdb/util_sam_sid.c
source3/rpc_server/srv_lsa_nt.c

index 8313a259bd2b9b53ed7db04fa8dd0eb82c2760b7..75f8171a25db7d16584e63ec8d9e7ead84f666b4 100644 (file)
@@ -814,13 +814,13 @@ BOOL local_lookup_sid(const DOM_SID *sid, char *name, enum SID_NAME_USE *psid_na
 
 BOOL local_lookup_name(const char *c_user, DOM_SID *psid, enum SID_NAME_USE *psid_name_use)
 {
-       extern DOM_SID global_sid_World_Domain;
        DOM_SID local_sid;
+       DOM_SID sid;
        fstring user;
        SAM_ACCOUNT *sam_account = NULL;
        struct group *grp;
        GROUP_MAP map;
-               
+
        *psid_name_use = SID_NAME_UNKNOWN;
 
        /*
@@ -832,14 +832,12 @@ BOOL local_lookup_name(const char *c_user, DOM_SID *psid, enum SID_NAME_USE *psi
 
        sid_copy(&local_sid, get_global_sam_sid());
 
-       /*
-        * Special case for MACHINE\Everyone. Map to the world_sid.
-        */
-
-       if(strequal(user, "Everyone")) {
-               sid_copy( psid, &global_sid_World_Domain);
-               sid_append_rid(psid, 0);
-               *psid_name_use = SID_NAME_ALIAS;
+       if (map_name_to_wellknown_sid(&sid, psid_name_use, user)){
+               fstring sid_str;
+               sid_copy( psid, &sid);
+               sid_to_string(sid_str, &sid);
+               DEBUG(10,("lookup_name: name %s = SID %s, type = %u\n", user, sid_str,
+                       (unsigned int)*psid_name_use ));
                return True;
        }
 
index 45ffe2460b20dcbb31b7d976195e2aea519feaca..c13159e47f0b033baf82fea063a63f6f207b0ff6 100644 (file)
@@ -294,6 +294,8 @@ BOOL map_name_to_wellknown_sid(DOM_SID *sid, enum SID_NAME_USE *use, const char
        if (!sid_name_map_initialized)
                init_sid_name_map();
 
+       DEBUG(10,("map_name_to_wellknown_sid: looking up %s\n", name));
+
        for (i=0; sid_name_map[i].sid != NULL; i++) {
                const known_sid_users *users = sid_name_map[i].known_users;
 
index 3878734c6df00f7c078eb869e97c76e89468f6cb..1d7fdb0e547b09b2a1e17fb7a8168c300ecabe19 100644 (file)
@@ -171,10 +171,12 @@ static void init_lsa_rid2s(DOM_R_REF *ref, DOM_RID2 *rid2,
                        status = lookup_name(dom_name, user, &sid, &name_type);
                }
 
+#if 0 /* This is not true. */
                if (name_type == SID_NAME_WKN_GRP) {
                        /* BUILTIN aliases are still aliases :-) */
                        name_type = SID_NAME_ALIAS;
                }
+#endif
 
                DEBUG(5, ("init_lsa_rid2s: %s\n", status ? "found" : 
                          "not found"));