summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2014-10-01 14:47:09 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-10-07 13:48:05 +0200
commit3af0e875791779fbf3a300f5eb376b6a731d5729 (patch)
tree6560be94fd02d3902d38bde43cfde779027728ca
parent934cb3541ccf22f3334b8f5f5768a23bf8ea1d52 (diff)
downloadsssd-3af0e875791779fbf3a300f5eb376b6a731d5729.tar.gz
sssd-3af0e875791779fbf3a300f5eb376b6a731d5729.tar.xz
sssd-3af0e875791779fbf3a300f5eb376b6a731d5729.zip
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. The directories the deamon stores its private data at are also created as owned by this user during install time.
-rw-r--r--Makefile.am24
-rw-r--r--configure.ac1
-rw-r--r--src/conf_macros.m434
3 files changed, 53 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am
index dd1949ed9..93f67c06b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -86,6 +86,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
@@ -2727,24 +2736,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 660ea8d37..2b0b3f945 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 4aa58138c..0ab929acc 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>],
+ [User for running SSSD (root)]
+ )
+ ]
+ )
+
+ AC_ARG_WITH([sssd-group],
+ [AS_HELP_STRING([--with-sssd-group=<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])
+ ])