mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2024-12-23 07:33:27 -06:00
77 lines
2.3 KiB
Plaintext
77 lines
2.3 KiB
Plaintext
|
#!/usr/bin/python3
|
||
|
#
|
||
|
# Copyright (C) 2021 FreeIPA Contributors see COPYING for license
|
||
|
#
|
||
|
|
||
|
import logging
|
||
|
|
||
|
from ipalib import api
|
||
|
from ipalib.install import sysrestore
|
||
|
from ipaplatform.paths import paths
|
||
|
from ipapython import ipaldap
|
||
|
from ipapython.admintool import AdminTool
|
||
|
from ipaserver.install import adtrust, adtrustinstance
|
||
|
|
||
|
logger = logging.getLogger(__name__)
|
||
|
|
||
|
class IPAConfigEnableSid(AdminTool):
|
||
|
command_name = "ipa-enable-sid"
|
||
|
log_file_name = paths.IPASERVER_ENABLESID_LOG
|
||
|
usage = "%prog"
|
||
|
description = "Enable SID generation"
|
||
|
|
||
|
@classmethod
|
||
|
def add_options(cls, parser):
|
||
|
super(IPAConfigEnableSid, cls).add_options(parser)
|
||
|
|
||
|
parser.add_option(
|
||
|
"--add-sids",
|
||
|
dest="add_sids", default=False, action="store_true",
|
||
|
help="Add SIDs for existing users and groups as the final step"
|
||
|
)
|
||
|
|
||
|
parser.add_option(
|
||
|
"--netbios-name",
|
||
|
dest="netbios_name", default=None,
|
||
|
help="NetBIOS name of the IPA domain"
|
||
|
)
|
||
|
|
||
|
parser.add_option(
|
||
|
"--reset-netbios-name",
|
||
|
dest="reset_netbios_name", default=False, action="store_true",
|
||
|
help="Force reset of the existing NetBIOS name"
|
||
|
)
|
||
|
|
||
|
|
||
|
def validate_options(self):
|
||
|
super(IPAConfigEnableSid, self).validate_options(needs_root=True)
|
||
|
|
||
|
def run(self):
|
||
|
api.bootstrap(in_server=True, confdir=paths.ETC_IPA)
|
||
|
api.finalize()
|
||
|
|
||
|
try:
|
||
|
api.Backend.ldap2.connect()
|
||
|
fstore = sysrestore.FileStore(paths.SYSRESTORE)
|
||
|
|
||
|
smb = adtrustinstance.ADTRUSTInstance(fstore, False)
|
||
|
smb.realm = api.env.realm
|
||
|
smb.autobind = ipaldap.AUTOBIND_ENABLED
|
||
|
smb.setup(api.env.host, api.env.realm,
|
||
|
self.options.netbios_name,
|
||
|
self.options.reset_netbios_name,
|
||
|
adtrust.DEFAULT_PRIMARY_RID_BASE,
|
||
|
adtrust.DEFAULT_SECONDARY_RID_BASE,
|
||
|
self.options.add_sids,
|
||
|
enable_compat=False)
|
||
|
smb.find_local_id_range()
|
||
|
smb.create_instance()
|
||
|
|
||
|
finally:
|
||
|
if api.Backend.ldap2.isconnected():
|
||
|
api.Backend.ldap2.disconnect()
|
||
|
|
||
|
return 0
|
||
|
|
||
|
IPAConfigEnableSid.run_cli()
|