summaryrefslogtreecommitdiff
path: root/source3/passdb
diff options
context:
space:
mode:
Diffstat (limited to 'source3/passdb')
-rw-r--r--source3/passdb/passdb.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
index bd76941c61..666e5072b6 100644
--- a/source3/passdb/passdb.c
+++ b/source3/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;