>From 1d2b3bb7f2d96c400ca019d5fbfdcf983e924cff Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Wed, 13 Jun 2012 17:52:38 +0200 Subject: [PATCH 11/11] Make krb5_ccname_template and krb5_ccachedir configurable Provide a configure-time options to specify the default values for krb5_ccname_template and krb5_ccachedir. --- configure.ac | 5 +++- contrib/sssd.spec.in | 2 ++ src/conf_macros.m4 | 30 +++++++++++++++++++++++ src/man/Makefile.am | 2 +- src/man/{sssd-krb5.5.xml => sssd-krb5.5.xml.in} | 10 ++++---- src/providers/ipa/ipa_opts.h | 4 +-- src/providers/krb5/krb5_opts.h | 4 +-- src/providers/krb5/krb5_utils.h | 3 +++ 8 files changed, 49 insertions(+), 11 deletions(-) rename src/man/{sssd-krb5.5.xml => sssd-krb5.5.xml.in} (98%) diff --git a/configure.ac b/configure.ac index d4647d8a0ad8e7e2555b97b13acee114e9a81a65..70ad4e72e67e1a207882217c7b0687667c7b23e5 100644 --- a/configure.ac +++ b/configure.ac @@ -82,6 +82,8 @@ WITH_LOG_PATH WITH_PUBCONF_PATH WITH_PIPE_PATH WITH_MCACHE_PATH +WITH_DEFAULT_CCACHE_DIR +WITH_DEFAULT_CCNAME_TEMPLATE WITH_INIT_DIR WITH_TEST_DIR WITH_MANPAGES @@ -252,5 +254,6 @@ AC_CONFIG_FILES([Makefile contrib/sssd.spec src/examples/rwtab src/doxy.config src/sss_client/sudo/libsss_sudo.pc src/sss_client/sudo/sss_sudo.doxy src/config/setup.py - src/config/SSSDConfig/__init__.py]) + src/config/SSSDConfig/__init__.py + src/man/sssd-krb5.5.xml]) AC_OUTPUT diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in index 8d7a8d5a831628793372dd1efe56a41302b99866..81d0c5a2dc7d8707e0dde80560f81d926fce1b45 100644 --- a/contrib/sssd.spec.in +++ b/contrib/sssd.spec.in @@ -228,6 +228,8 @@ autoreconf -ivf --with-pubconf-path=%{pubconfpath} \ --with-init-dir=%{_initrddir} \ --with-krb5-rcache-dir=%{_localstatedir}/cache/krb5rcache \ + --with-default-ccache-dir='/run/users/%u/credcache' \ + --with-default-ccname-template="DIR:%d" \ --enable-nsslibdir=/%{_lib} \ --enable-pammoddir=/%{_lib}/security \ --disable-static \ diff --git a/src/conf_macros.m4 b/src/conf_macros.m4 index 8c13e5dba71a98f25c42acaeccd3b01233f77210..2e98b84c24c2249603b258b12c5a044622fb6985 100644 --- a/src/conf_macros.m4 +++ b/src/conf_macros.m4 @@ -247,6 +247,36 @@ AC_DEFUN([WITH_KRB5_RCACHE_DIR], AC_DEFINE_UNQUOTED(KRB5_RCACHE_DIR, "$krb5rcachedir", [Directory used for storing Kerberos replay caches]) ]) +AC_DEFUN([WITH_DEFAULT_CCACHE_DIR], + [ AC_ARG_WITH([default-ccache-dir], + [AC_HELP_STRING([--with-default-ccache-dir=CCACHEDIR], + [The default value of krb5_ccachedir [/tmp]] + ) + ] + ) + config_def_ccache_dir="/tmp" + if test x"$with_default_ccache_dir" != x; then + config_def_ccache_dir=$with_default_ccache_dir + fi + AC_SUBST(config_def_ccache_dir) + AC_DEFINE_UNQUOTED(DEFAULT_CCACHE_DIR, "$config_def_ccache_dir", [The default value of krb5_ccachedir]) + ]) + +AC_DEFUN([WITH_DEFAULT_CCNAME_TEMPLATE], + [ AC_ARG_WITH([default-ccname-template], + [AC_HELP_STRING([--with-default-ccname-template=CCACHE], + [The default value of krb5_ccname_template [FILE:%d/krb5cc_%U_XXXXXX]] + ) + ] + ) + config_def_ccname_template="FILE:%d/krb5cc_%U_XXXXXX" + if test x"$with_default_ccname_template" != x; then + config_def_ccname_template=$with_default_ccname_template + fi + AC_SUBST(config_def_ccname_template) + AC_DEFINE_UNQUOTED(DEFAULT_CCNAME_TEMPLATE, "$config_def_ccname_template", [The default value of krb5_ccname_template]) + ]) + AC_DEFUN([WITH_PYTHON_BINDINGS], [ AC_ARG_WITH([python-bindings], [AC_HELP_STRING([--with-python-bindings], diff --git a/src/man/Makefile.am b/src/man/Makefile.am index c15844e82378bf5b9abd835cdde25a3a70cf1a37..aca76965d92906659b4a4664d1d386bb4fc6fc42 100644 --- a/src/man/Makefile.am +++ b/src/man/Makefile.am @@ -32,7 +32,7 @@ if HAVE_PROFILE_CATALOGS XSLTPROC_FLAGS += --stringparam profile.condition "$(CONDS)" endif -EXTRA_DIST = $(wildcard $(srcdir)/*.xml) $(wildcard $(srcdir)/include/*.xml) +EXTRA_DIST = $(wildcard $(srcdir)/*.xml) $(wildcard $(srcdir)/include/*.xml.in) $(wildcard $(srcdir)/include/*.xml) man_MANS = \ sss_useradd.8 sss_userdel.8 sss_usermod.8 \ sss_groupadd.8 sss_groupdel.8 sss_groupmod.8 \ diff --git a/src/man/sssd-krb5.5.xml b/src/man/sssd-krb5.5.xml.in similarity index 98% rename from src/man/sssd-krb5.5.xml rename to src/man/sssd-krb5.5.xml.in index 1baee36e9b0ade76de2990fd4f06bc655b5ce06c..760ee2e502d711d6894904c4201d660006c766c6 100644 --- a/src/man/sssd-krb5.5.xml +++ b/src/man/sssd-krb5.5.xml.in @@ -4,7 +4,7 @@ SSSD Manual pages - + sssd-krb5 @@ -148,7 +148,7 @@ for details) is created. - Default: /tmp + Default: @config_def_ccache_dir@ @@ -208,7 +208,7 @@ used to create a unique filename in a safe way. - Default: FILE:%d/krb5cc_%U_XXXXXX + Default: @config_def_ccname_template@ @@ -426,9 +426,9 @@ - + - + EXAMPLE diff --git a/src/providers/ipa/ipa_opts.h b/src/providers/ipa/ipa_opts.h index 770406cfebe67ba5104163986a29f4a1a9f34869..501f2e18b7db893f61c2e123450b7e156ac91d43 100644 --- a/src/providers/ipa/ipa_opts.h +++ b/src/providers/ipa/ipa_opts.h @@ -232,8 +232,8 @@ struct sdap_attr_map ipa_selinux_user_map[] = { struct dp_option ipa_def_krb5_opts[] = { { "krb5_server", DP_OPT_STRING, NULL_STRING, NULL_STRING }, { "krb5_realm", DP_OPT_STRING, NULL_STRING, NULL_STRING }, - { "krb5_ccachedir", DP_OPT_STRING, { "/tmp" }, NULL_STRING }, - { "krb5_ccname_template", DP_OPT_STRING, { "FILE:%d/krb5cc_%U_XXXXXX" }, NULL_STRING}, + { "krb5_ccachedir", DP_OPT_STRING, { DEFAULT_CCACHE_DIR }, NULL_STRING }, + { "krb5_ccname_template", DP_OPT_STRING, { DEFAULT_CCNAME_TEMPLATE }, NULL_STRING}, { "krb5_auth_timeout", DP_OPT_NUMBER, { .number = 15 }, NULL_NUMBER }, { "krb5_keytab", DP_OPT_STRING, { "/etc/krb5.keytab" }, NULL_STRING }, { "krb5_validate", DP_OPT_BOOL, BOOL_TRUE, BOOL_TRUE }, diff --git a/src/providers/krb5/krb5_opts.h b/src/providers/krb5/krb5_opts.h index 45dfec544f6d5261df313649658a1432f763ce5b..9de93b0cd725b15210263b282514af94f9dd9473 100644 --- a/src/providers/krb5/krb5_opts.h +++ b/src/providers/krb5/krb5_opts.h @@ -28,8 +28,8 @@ struct dp_option default_krb5_opts[] = { { "krb5_server", DP_OPT_STRING, NULL_STRING, NULL_STRING }, { "krb5_realm", DP_OPT_STRING, NULL_STRING, NULL_STRING }, - { "krb5_ccachedir", DP_OPT_STRING, { "/run/user/%u" }, NULL_STRING }, - { "krb5_ccname_template", DP_OPT_STRING, { "DIR:%d" }, NULL_STRING}, + { "krb5_ccachedir", DP_OPT_STRING, { DEFAULT_CCACHE_DIR }, NULL_STRING }, + { "krb5_ccname_template", DP_OPT_STRING, { DEFAULT_CCNAME_TEMPLATE }, NULL_STRING}, { "krb5_auth_timeout", DP_OPT_NUMBER, { .number = 15 }, NULL_NUMBER }, { "krb5_keytab", DP_OPT_STRING, { "/etc/krb5.keytab" }, NULL_STRING }, { "krb5_validate", DP_OPT_BOOL, BOOL_FALSE, BOOL_FALSE }, diff --git a/src/providers/krb5/krb5_utils.h b/src/providers/krb5/krb5_utils.h index 684c520151831eb7fbe619a1b14be38a6092e56a..5f677cae284b8bf22127b171715c07413fee1bb9 100644 --- a/src/providers/krb5/krb5_utils.h +++ b/src/providers/krb5/krb5_utils.h @@ -55,6 +55,9 @@ struct sss_krb5_cc_be { struct sss_krb5_cc_be file_cc; struct sss_krb5_cc_be dir_cc; +errno_t create_ccache_dir(const char *dirname, pcre *illegal_re, + uid_t uid, gid_t gid, bool private_path); + errno_t cc_file_create(const char *filename, pcre *illegal_re, uid_t uid, gid_t gid, bool private_path); -- 1.7.10.2