>From 47ff1a0762ed8353f1fead8f5afa991dc10e1284 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Wed, 1 Oct 2014 14:47:09 +0200 Subject: [PATCH 1/2] BUILD: Add a config option for sssd user, own private directories as the user Adds two new configure-time options that let you select the user to run SSSD as. The default is 'root' for backwards compatibility. If user is specified, but the group is not, the user is also used as group name. The directories the deamon stores its private data at are also created as owned by this user during install time. --- Makefile.am | 24 ++++++++++++++++++------ configure.ac | 1 + src/conf_macros.m4 | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/Makefile.am b/Makefile.am index 021498ff5793381397282089d4b44e9bb9bb0e3a..457acce7d9bcc88090a819cf2f0c28f747b333f6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -78,6 +78,15 @@ sudolibdir = @sudolibpath@ UNICODE_LIBS=@UNICODE_LIBS@ MKDIR_P = @MKDIR_P@ +INSTALL = @INSTALL@ + +SSSD_USER = @SSSD_USER@ +SSSD_GROUP = @SSSD_GROUP@ + +INSTALL_USER_DIR_FLAGS = -d +if SSSD_USER +INSTALL_USER_DIR_FLAGS += -o $(SSSD_USER) -g $(SSSD_GROUP) +endif AM_CFLAGS = if WANT_AUX_INFO @@ -2719,24 +2728,27 @@ installsssddirs:: $(DESTDIR)$(bindir) \ $(DESTDIR)$(sbindir) \ $(DESTDIR)$(mandir) \ + $(DESTDIR)$(pidpath) \ $(DESTDIR)$(pluginpath) \ $(DESTDIR)$(libdir)/ldb \ $(DESTDIR)$(dbuspolicydir) \ $(DESTDIR)$(dbusservicedir) \ - $(DESTDIR)$(pipepath)/private \ $(DESTDIR)$(sssdlibdir) \ $(DESTDIR)$(pkglibdir) \ - $(DESTDIR)$(sssdconfdir) \ $(DESTDIR)$(sssddatadir) \ + $(DESTDIR)$(sudolibdir) \ + $(DESTDIR)$(autofslibdir) \ + $(NULL); \ + $(INSTALL) $(INSTALL_USER_DIR_FLAGS) \ $(DESTDIR)$(dbpath) \ $(DESTDIR)$(mcpath) \ - $(DESTDIR)$(pidpath) \ - $(DESTDIR)$(logpath) \ + $(DESTDIR)$(pipepath) \ + $(DESTDIR)$(pipepath)/private \ $(DESTDIR)$(pubconfpath) \ $(DESTDIR)$(pubconfpath)/krb5.include.d \ $(DESTDIR)$(gpocachepath) \ - $(DESTDIR)$(sudolibdir) \ - $(DESTDIR)$(autofslibdir) \ + $(DESTDIR)$(sssdconfdir) \ + $(DESTDIR)$(logpath) \ $(NULL) if HAVE_DOXYGEN diff --git a/configure.ac b/configure.ac index e6745cb454624d1d62e1a827c2fbf557f6502ae9..e5ec204ad9671d15deb1830c60168e066a66f198 100644 --- a/configure.ac +++ b/configure.ac @@ -137,6 +137,7 @@ WITH_SAMBA WITH_NFS WITH_NFS_LIB_PATH WITH_LIBWBCLIENT +WITH_SSSD_USER m4_include([src/external/pkg.m4]) m4_include([src/external/libpopt.m4]) diff --git a/src/conf_macros.m4 b/src/conf_macros.m4 index 4aa58138c85db9266fd3f1765fc357b3fd104941..0ab929acc2969b522b413a4bde2a65e2e8b9fe9b 100644 --- a/src/conf_macros.m4 +++ b/src/conf_macros.m4 @@ -737,3 +737,37 @@ AC_DEFUN([WITH_NFS_LIB_PATH], fi AC_SUBST(nfslibpath) ]) + +AC_DEFUN([WITH_SSSD_USER], + [ AC_ARG_WITH([sssd-user], + [AS_HELP_STRING([--with-sssd-user=], + [User for running SSSD (root)] + ) + ] + ) + + AC_ARG_WITH([sssd-group], + [AS_HELP_STRING([--with-sssd-group=], + [Group for running SSSD (root)] + ) + ] + ) + + SSSD_USER=root + SSSD_GROUP=root + + if test x"$with_sssd_user" != x; then + SSSD_USER=$with_sssd_user + if test -z "$with_sssd_group"; then + SSSD_GROUP=$with_sssd_user + else + SSSD_GROUP=$with_sssd_group + fi + fi + + AC_SUBST(SSSD_USER) + AC_SUBST(SSSD_GROUP) + AC_DEFINE_UNQUOTED(SSSD_USER, "$SSSD_USER", ["The default user to run SSSD as"]) + AC_DEFINE_UNQUOTED(SSSD_GROUP, "$SSSD_GROUP", ["The default group to run SSSD as"]) + AM_CONDITIONAL([SSSD_USER], [test x"$with_sssd_user" != x]) + ]) -- 1.9.3