Fabiano Fidêncio 9709b73
From a40215878688cf10e35e6ba27893201c686395b3 Mon Sep 17 00:00:00 2001
Fabiano Fidêncio 9709b73
From: Justin Stephenson <jstephen@redhat.com>
Fabiano Fidêncio 9709b73
Date: Fri, 14 Jul 2017 16:08:37 -0400
Fabiano Fidêncio 9709b73
Subject: [PATCH] CONFDB: Add passwd_files and group_files options
Fabiano Fidêncio 9709b73
MIME-Version: 1.0
Fabiano Fidêncio 9709b73
Content-Type: text/plain; charset=UTF-8
Fabiano Fidêncio 9709b73
Content-Transfer-Encoding: 8bit
Fabiano Fidêncio 9709b73
Fabiano Fidêncio 9709b73
Add new options to the files provider allowing an administrator to
Fabiano Fidêncio 9709b73
configure the files provider to read and monitor multiple or
Fabiano Fidêncio 9709b73
non-standard passwd and group file sources. These options default to
Fabiano Fidêncio 9709b73
/etc/passwd and /etc/group when unset.
Fabiano Fidêncio 9709b73
Fabiano Fidêncio 9709b73
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Fabiano Fidêncio 9709b73
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Fabiano Fidêncio 9709b73
(cherry picked from commit c1208b485924964a7a4fcf19562964acb47fc214)
Fabiano Fidêncio 9709b73
---
Fabiano Fidêncio 9709b73
 Makefile.am                               |  3 ++-
Fabiano Fidêncio 9709b73
 src/confdb/confdb.h                       |  4 ++++
Fabiano Fidêncio 9709b73
 src/config/SSSDConfig/__init__.py.in      |  6 +++++-
Fabiano Fidêncio 9709b73
 src/config/cfg_rules.ini                  |  4 ++++
Fabiano Fidêncio 9709b73
 src/config/etc/sssd.api.d/sssd-files.conf |  3 +++
Fabiano Fidêncio 9709b73
 src/man/sssd-files.5.xml                  | 36 +++++++++++++++++++++++++++++--
Fabiano Fidêncio 9709b73
 src/providers/files/files_init.c          |  1 +
Fabiano Fidêncio 9709b73
 7 files changed, 53 insertions(+), 4 deletions(-)
Fabiano Fidêncio 9709b73
 create mode 100644 src/config/etc/sssd.api.d/sssd-files.conf
Fabiano Fidêncio 9709b73
Fabiano Fidêncio 9709b73
diff --git a/Makefile.am b/Makefile.am
Fabiano Fidêncio 9709b73
index 25e996d2d..d52fe0670 100644
Fabiano Fidêncio 9709b73
--- a/Makefile.am
Fabiano Fidêncio 9709b73
+++ b/Makefile.am
Fabiano Fidêncio 9709b73
@@ -4577,7 +4577,8 @@ dist_sssdapiplugin_DATA = \
Fabiano Fidêncio 9709b73
     src/config/etc/sssd.api.d/sssd-ldap.conf \
Fabiano Fidêncio 9709b73
     src/config/etc/sssd.api.d/sssd-local.conf \
Fabiano Fidêncio 9709b73
     src/config/etc/sssd.api.d/sssd-proxy.conf \
Fabiano Fidêncio 9709b73
-    src/config/etc/sssd.api.d/sssd-simple.conf
Fabiano Fidêncio 9709b73
+    src/config/etc/sssd.api.d/sssd-simple.conf \
Fabiano Fidêncio 9709b73
+    src/config/etc/sssd.api.d/sssd-files.conf
Fabiano Fidêncio 9709b73
 
Fabiano Fidêncio 9709b73
 edit_cmd = $(SED) \
Fabiano Fidêncio 9709b73
         -e 's|@sbindir[@]|$(sbindir)|g' \
Fabiano Fidêncio 9709b73
diff --git a/src/confdb/confdb.h b/src/confdb/confdb.h
Fabiano Fidêncio 9709b73
index c97a9b804..1d322aaac 100644
Fabiano Fidêncio 9709b73
--- a/src/confdb/confdb.h
Fabiano Fidêncio 9709b73
+++ b/src/confdb/confdb.h
Fabiano Fidêncio 9709b73
@@ -242,6 +242,10 @@
Fabiano Fidêncio 9709b73
 #define CONFDB_PROXY_FAST_ALIAS "proxy_fast_alias"
Fabiano Fidêncio 9709b73
 #define CONFDB_PROXY_MAX_CHILDREN "proxy_max_children"
Fabiano Fidêncio 9709b73
 
Fabiano Fidêncio 9709b73
+/* Files Provider */
Fabiano Fidêncio 9709b73
+#define CONFDB_FILES_PASSWD "passwd_files"
Fabiano Fidêncio 9709b73
+#define CONFDB_FILES_GROUP "group_files"
Fabiano Fidêncio 9709b73
+
Fabiano Fidêncio 9709b73
 /* Secrets Service */
Fabiano Fidêncio 9709b73
 #define CONFDB_SEC_CONF_ENTRY "config/secrets"
Fabiano Fidêncio 9709b73
 #define CONFDB_SEC_CONTAINERS_NEST_LEVEL "containers_nest_level"
Fabiano Fidêncio 9709b73
diff --git a/src/config/SSSDConfig/__init__.py.in b/src/config/SSSDConfig/__init__.py.in
Fabiano Fidêncio 9709b73
index 857d56cb5..32b74e4c7 100644
Fabiano Fidêncio 9709b73
--- a/src/config/SSSDConfig/__init__.py.in
Fabiano Fidêncio 9709b73
+++ b/src/config/SSSDConfig/__init__.py.in
Fabiano Fidêncio 9709b73
@@ -473,7 +473,11 @@ option_strings = {
Fabiano Fidêncio 9709b73
     'proxy_fast_alias' : _('Whether to look up canonical group name from cache if possible'),
Fabiano Fidêncio 9709b73
 
Fabiano Fidêncio 9709b73
     # [provider/proxy/auth]
Fabiano Fidêncio 9709b73
-    'proxy_pam_target' : _('PAM stack to use')
Fabiano Fidêncio 9709b73
+    'proxy_pam_target' : _('PAM stack to use'),
Fabiano Fidêncio 9709b73
+
Fabiano Fidêncio 9709b73
+    # [provider/files]
Fabiano Fidêncio 9709b73
+    'passwd_files' : _('Path of passwd file sources.'),
Fabiano Fidêncio 9709b73
+    'group_files' : _('Path of group file sources.')
Fabiano Fidêncio 9709b73
 }
Fabiano Fidêncio 9709b73
 
Fabiano Fidêncio 9709b73
 def striplist(l):
Fabiano Fidêncio 9709b73
diff --git a/src/config/cfg_rules.ini b/src/config/cfg_rules.ini
Fabiano Fidêncio 9709b73
index 4e70bf7b6..551322780 100644
Fabiano Fidêncio 9709b73
--- a/src/config/cfg_rules.ini
Fabiano Fidêncio 9709b73
+++ b/src/config/cfg_rules.ini
Fabiano Fidêncio 9709b73
@@ -404,6 +404,10 @@ option = dyndns_force_tcp
Fabiano Fidêncio 9709b73
 option = dyndns_auth
Fabiano Fidêncio 9709b73
 option = dyndns_server
Fabiano Fidêncio 9709b73
 
Fabiano Fidêncio 9709b73
+# files provider specific options
Fabiano Fidêncio 9709b73
+option = passwd_files
Fabiano Fidêncio 9709b73
+option = group_files
Fabiano Fidêncio 9709b73
+
Fabiano Fidêncio 9709b73
 # local provider specific options
Fabiano Fidêncio 9709b73
 option = create_homedir
Fabiano Fidêncio 9709b73
 option = remove_homedir
Fabiano Fidêncio 9709b73
diff --git a/src/config/etc/sssd.api.d/sssd-files.conf b/src/config/etc/sssd.api.d/sssd-files.conf
Fabiano Fidêncio 9709b73
new file mode 100644
Fabiano Fidêncio 9709b73
index 000000000..2444d4924
Fabiano Fidêncio 9709b73
--- /dev/null
Fabiano Fidêncio 9709b73
+++ b/src/config/etc/sssd.api.d/sssd-files.conf
Fabiano Fidêncio 9709b73
@@ -0,0 +1,3 @@
Fabiano Fidêncio 9709b73
+[provider/files]
Fabiano Fidêncio 9709b73
+passwd_files = str, None, false
Fabiano Fidêncio 9709b73
+group_files = str, None, false
Fabiano Fidêncio 9709b73
diff --git a/src/man/sssd-files.5.xml b/src/man/sssd-files.5.xml
Fabiano Fidêncio 9709b73
index d44fffc03..59e1b6523 100644
Fabiano Fidêncio 9709b73
--- a/src/man/sssd-files.5.xml
Fabiano Fidêncio 9709b73
+++ b/src/man/sssd-files.5.xml
Fabiano Fidêncio 9709b73
@@ -56,14 +56,46 @@
Fabiano Fidêncio 9709b73
     <refsect1 id='configuration-options'>
Fabiano Fidêncio 9709b73
         <title>CONFIGURATION OPTIONS</title>
Fabiano Fidêncio 9709b73
         <para>
Fabiano Fidêncio 9709b73
-            The files provider has no specific options of its own, however,
Fabiano Fidêncio 9709b73
-            generic SSSD domain options can be set where applicable.
Fabiano Fidêncio 9709b73
+            In addition to the options listed below, generic SSSD domain options
Fabiano Fidêncio 9709b73
+            can be set where applicable.
Fabiano Fidêncio 9709b73
             Refer to the section <quote>DOMAIN SECTIONS</quote> of the
Fabiano Fidêncio 9709b73
             <citerefentry>
Fabiano Fidêncio 9709b73
                 <refentrytitle>sssd.conf</refentrytitle>
Fabiano Fidêncio 9709b73
                 <manvolnum>5</manvolnum>
Fabiano Fidêncio 9709b73
             </citerefentry> manual page for details on the configuration
Fabiano Fidêncio 9709b73
             of an SSSD domain.
Fabiano Fidêncio 9709b73
+            <variablelist>
Fabiano Fidêncio 9709b73
+                <varlistentry>
Fabiano Fidêncio 9709b73
+                    <term>passwd_files (string)</term>
Fabiano Fidêncio 9709b73
+                    <listitem>
Fabiano Fidêncio 9709b73
+                        <para>
Fabiano Fidêncio 9709b73
+                            Comma-separated list of one or multiple password
Fabiano Fidêncio 9709b73
+                            filenames to be read and enumerated by the files
Fabiano Fidêncio 9709b73
+                            provider, inotify monitor watches will be set on
Fabiano Fidêncio 9709b73
+                            each file to detect changes dynamically.
Fabiano Fidêncio 9709b73
+                        </para>
Fabiano Fidêncio 9709b73
+                        <para>
Fabiano Fidêncio 9709b73
+                            Default: /etc/passwd
Fabiano Fidêncio 9709b73
+                        </para>
Fabiano Fidêncio 9709b73
+                    </listitem>
Fabiano Fidêncio 9709b73
+                </varlistentry>
Fabiano Fidêncio 9709b73
+
Fabiano Fidêncio 9709b73
+                <varlistentry>
Fabiano Fidêncio 9709b73
+                    <term>group_files (string)</term>
Fabiano Fidêncio 9709b73
+                    <listitem>
Fabiano Fidêncio 9709b73
+                        <para>
Fabiano Fidêncio 9709b73
+                            Comma-separated list of one or multiple group
Fabiano Fidêncio 9709b73
+                            filenames to be read and enumerated by the files
Fabiano Fidêncio 9709b73
+                            provider, inotify monitor watches will be set on
Fabiano Fidêncio 9709b73
+                            each file to detect changes dynamically.
Fabiano Fidêncio 9709b73
+                        </para>
Fabiano Fidêncio 9709b73
+                        <para>
Fabiano Fidêncio 9709b73
+                            Default: /etc/group
Fabiano Fidêncio 9709b73
+                        </para>
Fabiano Fidêncio 9709b73
+                    </listitem>
Fabiano Fidêncio 9709b73
+                </varlistentry>
Fabiano Fidêncio 9709b73
+
Fabiano Fidêncio 9709b73
+            </variablelist>
Fabiano Fidêncio 9709b73
         </para>
Fabiano Fidêncio 9709b73
     </refsect1>
Fabiano Fidêncio 9709b73
 
Fabiano Fidêncio 9709b73
diff --git a/src/providers/files/files_init.c b/src/providers/files/files_init.c
Fabiano Fidêncio 9709b73
index 8e5cd4cf9..b8a051c34 100644
Fabiano Fidêncio 9709b73
--- a/src/providers/files/files_init.c
Fabiano Fidêncio 9709b73
+++ b/src/providers/files/files_init.c
Fabiano Fidêncio 9709b73
@@ -21,6 +21,7 @@
Fabiano Fidêncio 9709b73
 
Fabiano Fidêncio 9709b73
 #include "providers/data_provider/dp.h"
Fabiano Fidêncio 9709b73
 #include "providers/files/files_private.h"
Fabiano Fidêncio 9709b73
+#include "util/util.h"
Fabiano Fidêncio 9709b73
 
Fabiano Fidêncio 9709b73
 int sssm_files_init(TALLOC_CTX *mem_ctx,
Fabiano Fidêncio 9709b73
                     struct be_ctx *be_ctx,
Fabiano Fidêncio 9709b73
-- 
Fabiano Fidêncio 9709b73
2.14.3
Fabiano Fidêncio 9709b73