diff options
author | Jeremy Allison <jra@samba.org> | 2003-09-18 01:17:20 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2003-09-18 01:17:20 +0000 |
commit | f4525f46ce0e807f11ad3eaeee10fb57bdd175bf (patch) | |
tree | c0165a051d950e767818c584ad0bddc9d0dbb9fc /source3/passdb/passdb.c | |
parent | 92347f2d0f3972db9e4e686db989d292689175be (diff) | |
download | samba-f4525f46ce0e807f11ad3eaeee10fb57bdd175bf.tar.gz samba-f4525f46ce0e807f11ad3eaeee10fb57bdd175bf.tar.bz2 samba-f4525f46ce0e807f11ad3eaeee10fb57bdd175bf.zip |
Fix for #470 - unable to display SIDs in ACLs.
Jeremy.
(This used to be commit 1b343f710550a39815001c668c48d9b194f19243)
Diffstat (limited to 'source3/passdb/passdb.c')
-rw-r--r-- | source3/passdb/passdb.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c index 1dadee8a49..743ea823bf 100644 --- a/source3/passdb/passdb.c +++ b/source3/passdb/passdb.c @@ -1073,8 +1073,16 @@ DOM_SID *local_uid_to_sid(DOM_SID *psid, uid_t uid) unix_pw = sys_getpwuid( uid ); if ( !unix_pw ) { - DEBUG(4,("local_uid_to_sid: host has know idea of uid %lu\n", (unsigned long)uid)); - return NULL; + DEBUG(4,("local_uid_to_sid: host has no idea of uid %lu\n", (unsigned long)uid)); + + if ( !lp_enable_rid_algorithm() ) + return NULL; + + DEBUG(8,("local_uid_to_sid: falling back to RID algorithm\n")); + + sid_copy( psid, get_global_sam_sid() ); + sid_append_rid( psid, fallback_pdb_uid_to_user_rid(uid) ); + goto out; } if ( !NT_STATUS_IS_OK(pdb_init_sam(&sampw)) ) { @@ -1101,6 +1109,7 @@ DOM_SID *local_uid_to_sid(DOM_SID *psid, uid_t uid) sid_append_rid( psid, fallback_pdb_uid_to_user_rid(uid) ); } +out: DEBUG(10,("local_uid_to_sid: uid (%d) -> SID %s (%s).\n", (unsigned int)uid, sid_string_static(psid), unix_pw->pw_name)); |