From: Günther Deschner Date: Mon, 24 Jan 2005 17:29:12 +0000 (+0000) Subject: r4964: Fix our lsa lookupsid $OURDOMAINSID-500. X-Git-Tag: samba-misc-tags/initial-v3-0-unstable~5360 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d319c0e189bc67a4552dafaff80113603b551eb3;p=thirdparty%2Fsamba.git r4964: Fix our lsa lookupsid $OURDOMAINSID-500. Give the admin-user (rid 500) a chance to be found in passdb, not returning the (possibly obscure) first entry of "admin users" before that. Guenther --- diff --git a/source/passdb/passdb.c b/source/passdb/passdb.c index bd76941c617..666e5072b67 100644 --- a/source/passdb/passdb.c +++ b/source/passdb/passdb.c @@ -759,24 +759,11 @@ BOOL local_lookup_sid(const DOM_SID *sid, char *name, enum SID_NAME_USE *psid_na DEBUG(5,("local_lookup_sid: looking up RID %u.\n", (unsigned int)rid)); - if (rid == DOMAIN_USER_RID_ADMIN) { - const char **admin_list = lp_admin_users(-1); - *psid_name_use = SID_NAME_USER; - if (admin_list) { - const char *p = *admin_list; - if(!next_token(&p, name, NULL, sizeof(fstring))) - fstrcpy(name, "Administrator"); - } else { - fstrcpy(name, "Administrator"); - } - return True; - } + /* see if the passdb can help us with the name of the user */ if (!NT_STATUS_IS_OK(pdb_init_sam(&sam_account))) { return False; } - - /* see if the passdb can help us with the name of the user */ /* BEING ROOT BLLOCK */ become_root(); @@ -807,6 +794,20 @@ BOOL local_lookup_sid(const DOM_SID *sid, char *name, enum SID_NAME_USE *psid_na return True; } + if (rid == DOMAIN_USER_RID_ADMIN) { + const char **admin_list = lp_admin_users(-1); + *psid_name_use = SID_NAME_USER; + if (admin_list) { + const char *p = *admin_list; + if(!next_token(&p, name, NULL, sizeof(fstring))) { + fstrcpy(name, "Administrator"); + } + } else { + fstrcpy(name, "Administrator"); + } + return True; + } + if (algorithmic_pdb_rid_is_user(rid)) { uid_t uid; struct passwd *pw = NULL;