diff options
-rw-r--r-- | docs-xml/smbdotconf/security/mitkdcconfig.xml | 14 | ||||
-rw-r--r-- | source4/kdc/kdc-service-mit.c | 7 |
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); |