selftest: Setup configs for MIT KDC
authorAndreas Schneider <asn@samba.org>
Wed, 30 Apr 2014 07:32:49 +0000 (09:32 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Sat, 29 Apr 2017 21:31:09 +0000 (23:31 +0200)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlet <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
selftest/target/Samba.pm
selftest/target/Samba4.pm

index e53d8dc4e9e00c381717a53fcbee38bb131d6ce0..3e5a7c3aa978586bdfb45ca045eb145fdd7ac0b6 100644 (file)
@@ -274,6 +274,55 @@ sub mk_realms_stanza($$$$)
         return $realms_stanza;
 }
 
+sub mk_mitkdc_conf($$)
+{
+       # samba_kdb_dir is the path to mit_samba.so
+       my ($ctx, $samba_kdb_dir) = @_;
+
+       unless (open(KDCCONF, ">$ctx->{mitkdc_conf}")) {
+               warn("can't open $ctx->{mitkdc_conf}$?");
+               return undef;
+       }
+
+       print KDCCONF "
+# Generated kdc.conf for $ctx->{realm}
+
+[kdcdefaults]
+       kdc_ports = 88
+       kdc_tcp_ports = 88
+
+[realms]
+       $ctx->{realm} = {
+       }
+
+       $ctx->{dnsname} = {
+       }
+
+       $ctx->{domain} = {
+       }
+
+[dbmodules]
+       db_module_dir = $samba_kdb_dir
+
+       $ctx->{realm} = {
+               db_library = samba
+       }
+
+       $ctx->{dnsname} = {
+               db_library = samba
+       }
+
+       $ctx->{domain} = {
+               db_library = samba
+       }
+
+[logging]
+       kdc = FILE:$ctx->{logdir}/mit_kdc.log
+";
+
+       close(KDCCONF);
+}
+
 sub get_interface($)
 {
     my ($netbiosname) = @_;
index 30bb255299770881ca99af1e53ecd43924a19140..0d75c471de51c9796b0baf19cadcd2d33ee2f209 100755 (executable)
@@ -123,6 +123,9 @@ sub check_or_start($$$)
 
                $ENV{KRB5_CONFIG} = $env_vars->{KRB5_CONFIG};
                $ENV{KRB5CCNAME} = "$env_vars->{KRB5_CCACHE}.samba";
+               if (defined($ENV{MITKRB5})) {
+                       $ENV{KRB5_KDC_PROFILE} = $env_vars->{MITKDC_CONFIG};
+               }
                $ENV{SELFTEST_WINBINDD_SOCKET_DIR} = $env_vars->{SELFTEST_WINBINDD_SOCKET_DIR};
                $ENV{NMBD_SOCKET_DIR} = $env_vars->{NMBD_SOCKET_DIR};
 
@@ -440,6 +443,7 @@ sub provision_raw_prepare($$$$$$$$$$$)
        $ctx->{smb_conf} = "$ctx->{etcdir}/smb.conf";
        $ctx->{krb5_conf} = "$ctx->{etcdir}/krb5.conf";
        $ctx->{krb5_ccache} = "$prefix_abs/krb5_ccache";
+       $ctx->{mitkdc_conf} = "$ctx->{etcdir}/mitkdc.conf";
        $ctx->{privatedir} = "$prefix_abs/private";
        $ctx->{ncalrpcdir} = "$prefix_abs/ncalrpc";
        $ctx->{lockdir} = "$prefix_abs/lockdir";
@@ -617,6 +621,7 @@ sub provision_raw_step1($$)
        }
 
        Samba::mk_krb5_conf($ctx);
+       Samba::mk_mitkdc_conf($ctx, abs_path(Samba::bindir_path($self, "shared")));
 
        open(PWD, ">$ctx->{nsswrap_passwd}");
        if ($ctx->{unix_uid} != 0) {
@@ -680,6 +685,7 @@ nogroup:x:65534:nobody
        my $ret = {
                KRB5_CONFIG => $ctx->{krb5_conf},
                KRB5_CCACHE => $ctx->{krb5_ccache},
+               MITKDC_CONFIG => $ctx->{mitkdc_conf},
                PIDDIR => $ctx->{piddir},
                SERVER => $ctx->{hostname},
                SERVER_IP => $ctx->{ipv4},
@@ -1367,6 +1373,7 @@ sub provision_subdom_dc($$$)
        }
 
        Samba::mk_krb5_conf($ctx);
+       Samba::mk_mitkdc_conf($ctx, abs_path(Samba::bindir_path($self, "shared")));
 
        my $samba_tool =  Samba::bindir_path($self, "samba-tool");
        my $cmd = "";
@@ -1675,6 +1682,7 @@ sub provision_rodc($$$)
        $ctx->{kdc_ipv4} = $ret->{SERVER_IP};
        $ctx->{kdc_ipv6} = $ret->{SERVER_IPV6};
        Samba::mk_krb5_conf($ctx);
+       Samba::mk_mitkdc_conf($ctx, abs_path(Samba::bindir_path($self, "shared")));
 
        $ret->{RODC_DC_SERVER} = $ret->{SERVER};
        $ret->{RODC_DC_SERVER_IP} = $ret->{SERVER_IP};