1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-07 17:18:11 +03:00

rpc: Add global_sid_Samba_NPA_Flags SID

This will be used as a flexible way to pass per-RPC-connection flags
over ncalrpc to the RPC server without having to modify
named_pipe_auth_req_info6 every time something new needs to be
passed. It's modeled after global_sid_Samba_SMB3.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=15361
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from commit ebbb93cc7a)
This commit is contained in:
Volker Lendecke 2023-04-18 12:09:45 +02:00 committed by Jule Anger
parent 40378826af
commit 5a09eaf01a
4 changed files with 31 additions and 0 deletions

View File

@ -66,6 +66,9 @@ extern const struct dom_sid global_sid_Unix_NFS_Mode;
extern const struct dom_sid global_sid_Unix_NFS_Other;
extern const struct dom_sid global_sid_Samba_SMB3;
extern const struct dom_sid global_sid_Samba_NPA_Flags;
#define SAMBA_NPA_FLAGS_NEED_IDLE 1
enum lsa_SidType;
NTSTATUS dom_sid_lookup_predefined_name(const char *name,

View File

@ -162,6 +162,13 @@ const struct dom_sid global_sid_Unix_NFS_Other = /* Unix other, MS NFS and Appl
const struct dom_sid global_sid_Samba_SMB3 =
{1, 1, {0,0,0,0,0,22}, {1397571891, }};
const struct dom_sid global_sid_Samba_NPA_Flags = {1,
1,
{0, 0, 0, 0, 0, 22},
{
2041152804,
}};
/* Unused, left here for documentary purposes */
#if 0
#define SECURITY_NULL_SID_AUTHORITY 0

View File

@ -437,6 +437,8 @@ NTSTATUS sid_array_from_info3(TALLOC_CTX *mem_ctx,
struct dom_sid **user_sids,
uint32_t *num_user_sids,
bool include_user_group_rid);
bool security_token_find_npa_flags(const struct security_token *token,
uint32_t *_flags);
/* The following definitions come from lib/util_sock.c */

View File

@ -173,3 +173,22 @@ NTSTATUS sid_array_from_info3(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
bool security_token_find_npa_flags(const struct security_token *token,
uint32_t *_flags)
{
const struct dom_sid *npa_flags_sid = NULL;
size_t num_npa_sids;
num_npa_sids =
security_token_count_flag_sids(token,
&global_sid_Samba_NPA_Flags,
1,
&npa_flags_sid);
if (num_npa_sids != 1) {
return false;
}
sid_peek_rid(npa_flags_sid, _flags);
return true;
}