summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/printing/nt_printing.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index 9b22ed5227..164ad58742 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -3039,16 +3039,19 @@ static SEC_DESC_BUF *construct_default_printer_sdb(TALLOC_CTX *ctx)
if (winbind_lookup_name(lp_workgroup(), &owner_sid, &name_type)) {
sid_append_rid(&owner_sid, DOMAIN_USER_RID_ADMIN);
} else {
+ uint32 owner_rid;
- /* Backup plan - make printer owned by admins or root. This should
- emulate a lanman printer as security settings can't be
- changed. */
+ /* Backup plan - make printer owned by admins or root.
+ This should emulate a lanman printer as security
+ settings can't be changed. */
- if (!lookup_name( "Printer Administrators", &owner_sid, &name_type) &&
- !lookup_name( "Administrators", &owner_sid, &name_type) &&
- !lookup_name( "Administrator", &owner_sid, &name_type) &&
- !lookup_name("root", &owner_sid, &name_type)) {
- sid_copy(&owner_sid, &global_sid_World);
+ sid_peek_rid(&owner_sid, &owner_rid);
+
+ if (owner_rid != BUILTIN_ALIAS_RID_PRINT_OPS &&
+ owner_rid != BUILTIN_ALIAS_RID_ADMINS &&
+ owner_rid != DOMAIN_USER_RID_ADMIN &&
+ !lookup_name("root", &owner_sid, &name_type)) {
+ sid_copy(&owner_sid, &global_sid_World);
}
}