From 8bf57cf8f57be28831023c2218d358b24b705256 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Mon, 2 May 2005 14:17:19 +0000 Subject: r6573: Start on my project to implement an NT4 compatible BDC in Samba4. This brings in a compatability layer for Samba3 in Samba4 - where we will start to define file formats and similar details. The 'net samdump' command uses 'password server = ' for now, and performs a similar task to Samba3's 'net rpc samsync'. Andrew Bartlett (This used to be commit 550f17f9924fe783917318753de7d1a388423908) --- source4/utils/net/config.mk | 1 + source4/utils/net/net.c | 1 + source4/utils/net/net_vampire.c | 68 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 source4/utils/net/net_vampire.c (limited to 'source4/utils') diff --git a/source4/utils/net/config.mk b/source4/utils/net/config.mk index 14b4683b9f..f68cf68c8c 100644 --- a/source4/utils/net/config.mk +++ b/source4/utils/net/config.mk @@ -8,6 +8,7 @@ OBJ_FILES = \ utils/net/net_password.o \ utils/net/net_time.o \ utils/net/net_join.o \ + utils/net/net_vampire.o \ utils/net/net_user.o REQUIRED_SUBSYSTEMS = \ CONFIG \ diff --git a/source4/utils/net/net.c b/source4/utils/net/net.c index 96ae23c7e4..c7c6f7dec9 100644 --- a/source4/utils/net/net.c +++ b/source4/utils/net/net.c @@ -105,6 +105,7 @@ static const struct net_functable net_functable[] = { {"password", "change password\n", net_password, net_password_usage}, {"time", "get remote server's time\n", net_time, net_time_usage}, {"join", "join a domain\n", net_join, net_join_usage}, + {"samdump", "dump the sam of a domain\n", net_samdump, net_samdump_usage}, {"user", "manage user accounts\n", net_user, net_user_usage}, {NULL, NULL, NULL, NULL} }; diff --git a/source4/utils/net/net_vampire.c b/source4/utils/net/net_vampire.c new file mode 100644 index 0000000000..df2d84746b --- /dev/null +++ b/source4/utils/net/net_vampire.c @@ -0,0 +1,68 @@ +/* + Samba Unix/Linux SMB client library + Distributed SMB/CIFS Server Management Utility + + Copyright (C) 2004 Stefan Metzmacher + Copyright (C) 2005 Andrew Bartlett + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" +#include "utils/net/net.h" +#include "libnet/libnet.h" +#include "librpc/gen_ndr/ndr_samr.h" + +int net_samdump(struct net_context *ctx, int argc, const char **argv) +{ + NTSTATUS status; + struct libnet_context *libnetctx; + union libnet_SamDump r; + + libnetctx = libnet_context_init(); + if (!libnetctx) { + return -1; + } + libnetctx->credentials = ctx->credentials; + + /* prepare password change */ + r.generic.level = LIBNET_SAMDUMP_GENERIC; + r.generic.error_string = NULL; + + /* do the domain join */ + status = libnet_SamDump(libnetctx, ctx->mem_ctx, &r); + if (!NT_STATUS_IS_OK(status)) { + DEBUG(0,("libnet_SamDump returned %s: %s\n", + nt_errstr(status), + r.generic.error_string)); + return -1; + } + + libnet_context_destroy(&libnetctx); + + return 0; +} + +int net_samdump_usage(struct net_context *ctx, int argc, const char **argv) +{ + d_printf("net samdump\n"); + return 0; +} + +int net_samdump_help(struct net_context *ctx, int argc, const char **argv) +{ + d_printf("Dumps the sam of the domain we are joined to.\n"); + return 0; +} -- cgit