From 3eeb40f9b54a4a48a4860a498991fd78274b44cf Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 7 May 2003 08:21:06 +0000 Subject: Set our 'global sam name' in one place. For domain controllers, this is lp_workgroup(), for all other server this is global_myname(). This is the name of the domain for accounts on *this* system, and getting this wrong caused interesting bugs with 'take ownership' on member servers and standalone servers at Snap. (They lookup the username that they got, then convert that to a SID - but becouse the domain out of the smbpasswd entry was wrong, we would fail the lookup). Andrew Bartlett (This used to be commit 5fc78eba20411f3f5a8ccadfcba5c4ab73180dba) --- source3/passdb/passdb.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'source3/passdb/passdb.c') diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index bbccb86d82..c3afcbc7d9 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -26,11 +26,13 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_PASSDB -/* - * This is set on startup - it defines the SID for this - * machine, and therefore the SAM database for which it is - * responsible. - */ +const char *get_global_sam_name() +{ + if ((lp_server_role() == ROLE_DOMAIN_PDC) || (lp_server_role() == ROLE_DOMAIN_BDC)) { + return lp_workgroup(); + } + return global_myname(); +} /************************************************************ Fill the SAM_ACCOUNT with default values. @@ -182,7 +184,7 @@ NTSTATUS pdb_fill_sam_pw(SAM_ACCOUNT *sam_account, const struct passwd *pwd) pdb_set_unix_homedir(sam_account, pwd->pw_dir, PDB_SET); - pdb_set_domain (sam_account, lp_workgroup(), PDB_DEFAULT); + pdb_set_domain (sam_account, get_global_sam_name(), PDB_DEFAULT); pdb_set_uid(sam_account, pwd->pw_uid, PDB_SET); pdb_set_gid(sam_account, pwd->pw_gid, PDB_SET); -- cgit