diff options
author | Christof Schmitt <cs@samba.org> | 2015-04-24 08:37:13 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2015-04-25 00:04:23 +0200 |
commit | 7eeca44f03e8bc52533ee7bf004261b096b5243f (patch) | |
tree | cda745927b75d24ecf332b0a2fe3c786e359d66c /source3/utils/smbcacls.c | |
parent | 9e1ebdc7ec3b0a7c49d8b7469c0d07486f797a74 (diff) | |
download | samba-7eeca44f03e8bc52533ee7bf004261b096b5243f.tar.gz |
smbcacls: Move SidToString to common file
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11237
Signed-off-by: Christof Schmitt <cs@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/utils/smbcacls.c')
-rw-r--r-- | source3/utils/smbcacls.c | 86 |
1 files changed, 1 insertions, 85 deletions
diff --git a/source3/utils/smbcacls.c b/source3/utils/smbcacls.c index f3e0eb52126..5bbc8fa812c 100644 --- a/source3/utils/smbcacls.c +++ b/source3/utils/smbcacls.c @@ -31,6 +31,7 @@ #include "libsmb/clirap.h" #include "passdb/machine_sid.h" #include "../librpc/gen_ndr/ndr_lsa_c.h" +#include "util_sd.h" static int test_args; @@ -71,60 +72,6 @@ static const struct perm_value standard_values[] = { { NULL, 0 }, }; -/* Open cli connection and policy handle */ - -static NTSTATUS cli_lsa_lookup_sid(struct cli_state *cli, - const struct dom_sid *sid, - TALLOC_CTX *mem_ctx, - enum lsa_SidType *type, - char **domain, char **name) -{ - uint16 orig_cnum = cli_state_get_tid(cli); - struct rpc_pipe_client *p = NULL; - struct policy_handle handle; - NTSTATUS status; - TALLOC_CTX *frame = talloc_stackframe(); - enum lsa_SidType *types; - char **domains; - char **names; - - status = cli_tree_connect(cli, "IPC$", "?????", "", 0); - if (!NT_STATUS_IS_OK(status)) { - goto tcon_fail; - } - - status = cli_rpc_pipe_open_noauth(cli, &ndr_table_lsarpc, - &p); - if (!NT_STATUS_IS_OK(status)) { - goto fail; - } - - status = rpccli_lsa_open_policy(p, talloc_tos(), True, - GENERIC_EXECUTE_ACCESS, &handle); - if (!NT_STATUS_IS_OK(status)) { - goto fail; - } - - status = rpccli_lsa_lookup_sids(p, talloc_tos(), &handle, 1, sid, - &domains, &names, &types); - if (!NT_STATUS_IS_OK(status)) { - goto fail; - } - - *type = types[0]; - *domain = talloc_move(mem_ctx, &domains[0]); - *name = talloc_move(mem_ctx, &names[0]); - - status = NT_STATUS_OK; - fail: - TALLOC_FREE(p); - cli_tdis(cli); - tcon_fail: - cli_state_set_tid(cli, orig_cnum); - TALLOC_FREE(frame); - return status; -} - static NTSTATUS cli_lsa_lookup_name(struct cli_state *cli, const char *name, enum lsa_SidType *type, @@ -250,37 +197,6 @@ static struct dom_sid *get_domain_sid(struct cli_state *cli) return sid; } - -/* convert a SID to a string, either numeric or username/group */ -static void SidToString(struct cli_state *cli, fstring str, - const struct dom_sid *sid, bool numeric) -{ - char *domain = NULL; - char *name = NULL; - enum lsa_SidType type; - NTSTATUS status; - - sid_to_fstring(str, sid); - - if (numeric) { - return; - } - - status = cli_lsa_lookup_sid(cli, sid, talloc_tos(), &type, - &domain, &name); - - if (!NT_STATUS_IS_OK(status)) { - return; - } - - if (*domain) { - slprintf(str, sizeof(fstring) - 1, "%s%s%s", - domain, lp_winbind_separator(), name); - } else { - fstrcpy(str, name); - } -} - /* convert a string to a SID, either numeric or username/group */ static bool StringToSid(struct cli_state *cli, struct dom_sid *sid, const char *str) { |