summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs-xml/smbdotconf/security/mitkdcconfig.xml14
-rw-r--r--source4/kdc/kdc-service-mit.c7
2 files changed, 21 insertions, 0 deletions
diff --git a/docs-xml/smbdotconf/security/mitkdcconfig.xml b/docs-xml/smbdotconf/security/mitkdcconfig.xml
new file mode 100644
index 00000000000..4dd9f9badff
--- /dev/null
+++ b/docs-xml/smbdotconf/security/mitkdcconfig.xml
@@ -0,0 +1,14 @@
+<samba:parameter name="mit kdc config"
+ context="G"
+ type="string"
+ advanced="1"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+ <para>
+ This option allows to use a different MIT KDC config file than using
+ the system default.
+ </para>
+</description>
+
+<value type="example">/etc/samba/kdc.conf</value>
+</samba:parameter>
diff --git a/source4/kdc/kdc-service-mit.c b/source4/kdc/kdc-service-mit.c
index 36d0063e4ed..719ea48c090 100644
--- a/source4/kdc/kdc-service-mit.c
+++ b/source4/kdc/kdc-service-mit.c
@@ -42,6 +42,7 @@ void mitkdc_task_init(struct task_server *task)
{
struct tevent_req *subreq;
const char * const *kdc_cmd;
+ const char *kdc_config;
NTSTATUS status;
task_server_set_title(task, "task[mitkdc_parent]");
@@ -64,6 +65,12 @@ void mitkdc_task_init(struct task_server *task)
break;
}
+ kdc_config = lpcfg_mit_kdc_config(task->lp_ctx, task);
+ if (kdc_config != NULL && kdc_config[0] != '\0') {
+ /* Do not overwrite the variable if already set! */
+ setenv("KRB5_KDC_PROFILE", kdc_config, 0);
+ }
+
/* start it as a child process */
kdc_cmd = lpcfg_mit_kdc_command(task->lp_ctx);