mirror of
https://github.com/samba-team/samba.git
synced 2025-12-16 00:23:52 +03:00
added the 'lsaenumacctwithright' command to rpcclient. This allows you
to lookup what SIDs have a particular privilege (that is how privileges are stored).
This commit is contained in:
@@ -2395,7 +2395,6 @@ void init_q_remove_acct_rights(LSA_Q_REMOVE_ACCT_RIGHTS *q_q,
|
||||
init_dom_sid2(&q_q->sid, sid);
|
||||
q_q->removeall = removeall;
|
||||
init_unistr2_array(&q_q->rights, count, rights);
|
||||
q_q->count = 5;
|
||||
}
|
||||
|
||||
|
||||
@@ -2426,7 +2425,7 @@ BOOL lsa_io_q_remove_acct_rights(const char *desc, LSA_Q_REMOVE_ACCT_RIGHTS *q_q
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
reads or writes a LSA_R_ENUM_ACCT_RIGHTS structure.
|
||||
reads or writes a LSA_R_REMOVE_ACCT_RIGHTS structure.
|
||||
********************************************************************/
|
||||
BOOL lsa_io_r_remove_acct_rights(const char *desc, LSA_R_REMOVE_ACCT_RIGHTS *r_c, prs_struct *ps, int depth)
|
||||
{
|
||||
@@ -2446,3 +2445,68 @@ void init_r_remove_acct_rights(LSA_R_REMOVE_ACCT_RIGHTS *q_r)
|
||||
{
|
||||
DEBUG(5, ("init_r_remove_acct_rights\n"));
|
||||
}
|
||||
|
||||
/*******************************************************************
|
||||
Inits an LSA_Q_ENUM_ACCT_WITH_RIGHT structure.
|
||||
********************************************************************/
|
||||
void init_q_enum_acct_with_right(LSA_Q_ENUM_ACCT_WITH_RIGHT *q_q,
|
||||
POLICY_HND *hnd,
|
||||
const char *right)
|
||||
{
|
||||
DEBUG(5, ("init_q_enum_acct_with_right\n"));
|
||||
|
||||
q_q->pol = *hnd;
|
||||
init_unistr2(&q_q->right, right, strlen(right));
|
||||
init_str_hdr(&q_q->right_hdr,
|
||||
q_q->right.uni_max_len*2,
|
||||
q_q->right.uni_max_len*2, right?1:0);
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
reads or writes a LSA_Q_ENUM_ACCT_WITH_RIGHT structure.
|
||||
********************************************************************/
|
||||
BOOL lsa_io_q_enum_acct_with_right(const char *desc, LSA_Q_ENUM_ACCT_WITH_RIGHT *q_q, prs_struct *ps, int depth)
|
||||
{
|
||||
prs_debug(ps, depth, desc, "lsa_io_q_enum_acct_with_right");
|
||||
depth++;
|
||||
|
||||
if (!smb_io_pol_hnd("", &q_q->pol, ps, depth))
|
||||
return False;
|
||||
|
||||
if (!prs_uint32("ref_id ", ps, depth, &q_q->right_hdr.buffer))
|
||||
return False;
|
||||
|
||||
if (UNMARSHALLING(ps) && q_q->right_hdr.buffer == 0) {
|
||||
return True;
|
||||
}
|
||||
|
||||
if (!smb_io_strhdr("", &q_q->right_hdr, ps, depth))
|
||||
return False;
|
||||
|
||||
if (!smb_io_unistr2("", &q_q->right, q_q->right_hdr.buffer, ps, depth))
|
||||
return False;
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************
|
||||
reads or writes a LSA_R_ENUM_ACCT_WITH_RIGHT structure.
|
||||
********************************************************************/
|
||||
BOOL lsa_io_r_enum_acct_with_right(const char *desc, LSA_R_ENUM_ACCT_WITH_RIGHT *r_c, prs_struct *ps, int depth)
|
||||
{
|
||||
prs_debug(ps, depth, desc, "lsa_io_r_enum_acct_with_right");
|
||||
depth++;
|
||||
|
||||
if (!prs_uint32("count ", ps, depth, &r_c->count))
|
||||
return False;
|
||||
|
||||
if (!smb_io_sid_array("sids ", &r_c->sids, ps, depth))
|
||||
return False;
|
||||
|
||||
if(!prs_ntstatus("status", ps, depth, &r_c->status))
|
||||
return False;
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user