From cf17d48dec1ed94127b239c9bf40bcdcbcd808ca Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 1 Mar 2010 20:43:19 +0100 Subject: Migrate 'net export keytab' to python. --- source4/scripting/python/samba/netcmd/__init__.py | 2 + source4/scripting/python/samba/netcmd/export.py | 57 +++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 source4/scripting/python/samba/netcmd/export.py (limited to 'source4/scripting/python') diff --git a/source4/scripting/python/samba/netcmd/__init__.py b/source4/scripting/python/samba/netcmd/__init__.py index f09828e6bb..2f49dcf1f9 100644 --- a/source4/scripting/python/samba/netcmd/__init__.py +++ b/source4/scripting/python/samba/netcmd/__init__.py @@ -147,3 +147,5 @@ from samba.netcmd.netacl import cmd_acl commands["acl"] = cmd_acl() from samba.netcmd.fsmo import cmd_fsmo commands["fsmo"] = cmd_fsmo() +from samba.netcmd.export import cmd_export +commands["export"] = cmd_export() diff --git a/source4/scripting/python/samba/netcmd/export.py b/source4/scripting/python/samba/netcmd/export.py new file mode 100644 index 0000000000..8e5fd2b6e2 --- /dev/null +++ b/source4/scripting/python/samba/netcmd/export.py @@ -0,0 +1,57 @@ +#!/usr/bin/python +# +# Export keytab +# +# Copyright Jelmer Vernooij 2010 +# +# 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 3 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, see . +# + +import samba.getopt as options + +from samba import net + +from samba.netcmd import ( + Command, + SuperCommand, + ) + +class cmd_export_keytab(Command): + """Dumps kerberos keys of the domain into a keytab.""" + synopsis = "%prog export keytab " + + takes_optiongroups = { + "sambaopts": options.SambaOptions, + "credopts": options.CredentialsOptions, + "versionopts": options.VersionOptions, + } + + takes_options = [ + ] + + takes_args = ["keytab"] + + def run(self, keytab, credopts=None, sambaopts=None, versionopts=None): + lp = sambaopts.get_loadparm() + creds = credopts.get_credentials(lp) + # FIXME: Obtain net context + net.export_keytab(keytab=keytab, creds=creds) + + +class cmd_export(SuperCommand): + """Dumps the sam of the domain we are joined to.""" + + subcommands = {} + subcommands["keytab"] = cmd_export_keytab() + -- cgit