dns_dir, paths.bind_gid))
+def create_dns_dir_keytab_link(logger, paths):
+ """Create link for BIND to DNS keytab
+
+ :param logger: Logger object
+ :param paths: paths object
+ """
+ private_dns_keytab_path = os.path.join(paths.private_dir, paths.dns_keytab)
+ bind_dns_keytab_path = os.path.join(paths.binddns_dir, paths.dns_keytab)
+
+ if os.path.isfile(private_dns_keytab_path):
+ if os.path.isfile(bind_dns_keytab_path):
+ try:
+ os.unlink(bind_dns_keytab_path)
+ except OSError as e:
+ logger.error("Failed to remove %s: %s" %
+ (bind_dns_keytab_path, e.strerror))
+
+ # link the dns.keytab to the bind-dns directory
+ try:
+ os.link(private_dns_keytab_path, bind_dns_keytab_path)
+ except OSError as e:
+ logger.error("Failed to create link %s -> %s: %s" %
+ (private_dns_keytab_path, bind_dns_keytab_path, e.strerror))
+
+ # chown the dns.keytab in the bind-dns directory
+ if paths.bind_gid is not None:
+ try:
+ os.chmod(paths.binddns_dir, 0o770)
+ os.chown(paths.binddns_dir, -1, paths.bind_gid)
+ except OSError:
+ if 'SAMBA_SELFTEST' not in os.environ:
+ logger.info("Failed to chown %s to bind gid %u",
+ paths.binddns_dir, paths.bind_gid)
+ try:
+ os.chmod(bind_dns_keytab_path, 0o640)
+ os.chown(bind_dns_keytab_path, -1, paths.bind_gid)
+ except OSError:
+ if 'SAMBA_SELFTEST' not in os.environ:
+ logger.info("Failed to chown %s to bind gid %u",
+ bind_dns_keytab_path, paths.bind_gid)
+
+
def create_zone_file(lp, logger, paths, targetdir, dnsdomain,
hostip, hostip6, hostname, realm, domainguid,
ntdsguid, site):
key_version_number=key_version_number)
create_dns_dir(logger, paths)
+ create_dns_dir_keytab_link(logger, paths)
if dns_backend == "BIND9_FLATFILE":
create_zone_file(lp, logger, paths, targetdir, site=site,
fill_dns_data_partitions,
create_dns_dir,
secretsdb_setup_dns,
+ create_dns_dir_keytab_link,
create_samdb_copy,
create_named_conf,
create_named_txt )
# This directory won't exist if we're restoring from an offline backup.
os.mkdir(paths.binddns_dir, 0o770)
- private_dns_keytab_path = os.path.join(paths.private_dir, paths.dns_keytab)
- bind_dns_keytab_path = os.path.join(paths.binddns_dir, paths.dns_keytab)
-
- if os.path.isfile(private_dns_keytab_path):
- if os.path.isfile(bind_dns_keytab_path):
- try:
- os.unlink(bind_dns_keytab_path)
- except OSError as e:
- logger.error("Failed to remove %s: %s" %
- (bind_dns_keytab_path, e.strerror))
-
- # link the dns.keytab to the bind-dns directory
- try:
- os.link(private_dns_keytab_path, bind_dns_keytab_path)
- except OSError as e:
- logger.error("Failed to create link %s -> %s: %s" %
- (private_dns_keytab_path, bind_dns_keytab_path, e.strerror))
-
- # chown the dns.keytab in the bind-dns directory
- if paths.bind_gid is not None:
- try:
- os.chmod(paths.binddns_dir, 0o770)
- os.chown(paths.binddns_dir, -1, paths.bind_gid)
- except OSError:
- if 'SAMBA_SELFTEST' not in os.environ:
- logger.info("Failed to chown %s to bind gid %u",
- paths.binddns_dir, paths.bind_gid)
- try:
- os.chmod(bind_dns_keytab_path, 0o640)
- os.chown(bind_dns_keytab_path, -1, paths.bind_gid)
- except OSError:
- if 'SAMBA_SELFTEST' not in os.environ:
- logger.info("Failed to chown %s to bind gid %u",
- bind_dns_keytab_path, paths.bind_gid)
-
+ create_dns_dir_keytab_link(logger, paths)
# This forces a re-creation of dns directory and all the files within
# It's an overkill, but it's easier to re-create a samdb copy, rather