From 12d5ea7f58892ee0ff93ebee7d02c592f1540746 Mon Sep 17 00:00:00 2001 From: Rob van der Linde Date: Fri, 31 Mar 2023 13:02:57 +1300 Subject: [PATCH] netcmd: domain: move keytab command to domain/keytab.py Signed-off-by: Rob van der Linde Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett --- python/samba/netcmd/domain/__init__.py | 30 +------------- python/samba/netcmd/domain/keytab.py | 55 ++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 29 deletions(-) create mode 100644 python/samba/netcmd/domain/keytab.py diff --git a/python/samba/netcmd/domain/__init__.py b/python/samba/netcmd/domain/__init__.py index 8395fef1ea3..778a3b523e5 100644 --- a/python/samba/netcmd/domain/__init__.py +++ b/python/samba/netcmd/domain/__init__.py @@ -36,7 +36,6 @@ from samba import NTSTATUSError from samba import werror from getpass import getpass from samba.net import Net, LIBNET_JOIN_AUTOMATIC -from samba import enable_net_export_keytab import samba.ntacls from samba.auth import system_session from samba.samdb import SamDB, get_default_backend_store @@ -106,6 +105,7 @@ from .demote import cmd_domain_demote from .functional_prep import cmd_domain_functional_prep from .info import cmd_domain_info from .join import cmd_domain_join +from .keytab import cmd_domain_export_keytab def level_to_string(level): @@ -126,34 +126,6 @@ def level_to_string(level): return strings.get(level, "higher than 2016") -try: - enable_net_export_keytab() -except ImportError: - cmd_domain_export_keytab = None -else: - class cmd_domain_export_keytab(Command): - """Dump Kerberos keys of the domain into a keytab.""" - - synopsis = "%prog [options]" - - takes_optiongroups = { - "sambaopts": options.SambaOptions, - "credopts": options.CredentialsOptions, - "versionopts": options.VersionOptions, - } - - takes_options = [ - Option("--principal", help="extract only this principal", type=str), - ] - - takes_args = ["keytab"] - - def run(self, keytab, credopts=None, sambaopts=None, versionopts=None, principal=None): - lp = sambaopts.get_loadparm() - net = Net(None, lp) - net.export_keytab(keytab=keytab, principal=principal) - - class cmd_domain_provision(Command): """Provision a domain.""" diff --git a/python/samba/netcmd/domain/keytab.py b/python/samba/netcmd/domain/keytab.py new file mode 100644 index 00000000000..b0955ca5dbc --- /dev/null +++ b/python/samba/netcmd/domain/keytab.py @@ -0,0 +1,55 @@ +# domain management - domain keytab +# +# Copyright Matthias Dieter Wallnoefer 2009 +# Copyright Andrew Kroeger 2009 +# Copyright Jelmer Vernooij 2007-2012 +# Copyright Giampaolo Lauria 2011 +# Copyright Matthieu Patou 2011 +# Copyright Andrew Bartlett 2008-2015 +# Copyright Stefan Metzmacher 2012 +# +# 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 enable_net_export_keytab +from samba.net import Net +from samba.netcmd import Command, Option + +try: + enable_net_export_keytab() +except ImportError: + cmd_domain_export_keytab = None +else: + class cmd_domain_export_keytab(Command): + """Dump Kerberos keys of the domain into a keytab.""" + + synopsis = "%prog [options]" + + takes_optiongroups = { + "sambaopts": options.SambaOptions, + "credopts": options.CredentialsOptions, + "versionopts": options.VersionOptions, + } + + takes_options = [ + Option("--principal", help="extract only this principal", type=str), + ] + + takes_args = ["keytab"] + + def run(self, keytab, credopts=None, sambaopts=None, versionopts=None, principal=None): + lp = sambaopts.get_loadparm() + net = Net(None, lp) + net.export_keytab(keytab=keytab, principal=principal)