summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2014-07-26 12:46:26 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-10-07 13:48:04 +0200
commit21983497ff98e34e34f8a626fd0bba24831fd1b4 (patch)
tree1762f327ed1771523b979f1f2ce245ae5f9844ab
parentd6b422ce1da29c44608666fde081324977c909a6 (diff)
downloadsssd-21983497ff98e34e34f8a626fd0bba24831fd1b4.tar.gz
sssd-21983497ff98e34e34f8a626fd0bba24831fd1b4.tar.xz
sssd-21983497ff98e34e34f8a626fd0bba24831fd1b4.zip
UTIL: Move become_user outside krb5 tree
In order for several other SSSD processes to run as a non-root user, we need to move the functions to become another user to a shared space in our source tree.
-rw-r--r--Makefile.am20
-rw-r--r--src/providers/krb5/krb5_utils.h8
-rw-r--r--src/util/become_user.c (renamed from src/providers/krb5/krb5_become_user.c)1
-rw-r--r--src/util/util.h9
4 files changed, 21 insertions, 17 deletions
diff --git a/Makefile.am b/Makefile.am
index eb0e64943..ac3f26cad 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1286,13 +1286,14 @@ strtonum_tests_LDADD = \
krb5_utils_tests_SOURCES = \
src/tests/krb5_utils-tests.c \
src/providers/krb5/krb5_utils.c \
- src/providers/krb5/krb5_become_user.c \
src/providers/krb5/krb5_common.c \
src/util/sss_krb5.c \
src/providers/data_provider_fo.c \
src/providers/data_provider_opts.c \
src/providers/data_provider_callbacks.c \
- $(SSSD_FAILOVER_OBJ)
+ src/util/become_user.c \
+ $(SSSD_FAILOVER_OBJ) \
+ $(NULL)
krb5_utils_tests_CFLAGS = \
$(AM_CFLAGS) \
$(KRB5_CFLAGS) \
@@ -1567,13 +1568,14 @@ krb5_child_test_SOURCES = \
src/tests/krb5_child-test.c \
src/providers/krb5/krb5_utils.c \
src/providers/krb5/krb5_child_handler.c \
- src/providers/krb5/krb5_become_user.c \
src/providers/krb5/krb5_common.c \
src/util/sss_krb5.c \
src/providers/data_provider_fo.c \
src/providers/data_provider_opts.c \
src/providers/data_provider_callbacks.c \
- $(SSSD_FAILOVER_OBJ)
+ src/util/become_user.c \
+ $(SSSD_FAILOVER_OBJ) \
+ $(NULL)
krb5_child_test_CFLAGS = \
$(AM_CFLAGS) \
-DKRB5_CHILD_DIR=\"$(builddir)\" \
@@ -2243,7 +2245,6 @@ libsss_ad_common_la_LIBADD = \
libsss_krb5_common_la_SOURCES = \
src/providers/krb5/krb5_utils.c \
- src/providers/krb5/krb5_become_user.c \
src/providers/krb5/krb5_delayed_online_authentication.c \
src/providers/krb5/krb5_renew_tgt.c \
src/providers/krb5/krb5_wait_queue.c \
@@ -2252,7 +2253,9 @@ libsss_krb5_common_la_SOURCES = \
src/providers/krb5/krb5_access.c \
src/providers/krb5/krb5_child_handler.c \
src/providers/krb5/krb5_init_shared.c \
- src/util/sss_krb5.c
+ src/util/sss_krb5.c \
+ src/util/become_user.c \
+ $(NULL)
libsss_krb5_common_la_CFLAGS = \
$(KRB5_CFLAGS)
libsss_krb5_common_la_LIBADD = \
@@ -2432,7 +2435,6 @@ libsss_ad_la_LDFLAGS = \
-module
krb5_child_SOURCES = \
- src/providers/krb5/krb5_become_user.c \
src/providers/krb5/krb5_child.c \
src/providers/dp_pam_data_util.c \
src/util/user_info_msg.c \
@@ -2441,7 +2443,9 @@ krb5_child_SOURCES = \
src/util/authtok.c \
src/util/util.c \
src/util/signal.c \
- src/sss_client/common.c
+ src/util/become_user.c \
+ src/sss_client/common.c \
+ $(NULL)
krb5_child_CFLAGS = \
$(AM_CFLAGS) \
$(POPT_CFLAGS) \
diff --git a/src/providers/krb5/krb5_utils.h b/src/providers/krb5/krb5_utils.h
index 4b1ebb0bb..f54a07f79 100644
--- a/src/providers/krb5/krb5_utils.h
+++ b/src/providers/krb5/krb5_utils.h
@@ -49,14 +49,6 @@ char *expand_ccname_template(TALLOC_CTX *mem_ctx, struct krb5child_req *kr,
const char *template, bool file_mode,
bool case_sensitive);
-errno_t become_user(uid_t uid, gid_t gid);
-struct sss_creds;
-errno_t switch_creds(TALLOC_CTX *mem_ctx,
- uid_t uid, gid_t gid,
- int num_gids, gid_t *gids,
- struct sss_creds **saved_creds);
-errno_t restore_creds(struct sss_creds *saved_creds);
-
errno_t sss_krb5_precreate_ccache(const char *ccname, pcre *illegal_re,
uid_t uid, gid_t gid);
errno_t sss_krb5_cc_destroy(const char *ccname, uid_t uid, gid_t gid);
diff --git a/src/providers/krb5/krb5_become_user.c b/src/util/become_user.c
index 6ddb35a56..b5f94f993 100644
--- a/src/providers/krb5/krb5_become_user.c
+++ b/src/util/become_user.c
@@ -23,7 +23,6 @@
*/
#include "util/util.h"
-#include "providers/krb5/krb5_utils.h"
#include <grp.h>
errno_t become_user(uid_t uid, gid_t gid)
diff --git a/src/util/util.h b/src/util/util.h
index df82b3fa4..24db52d23 100644
--- a/src/util/util.h
+++ b/src/util/util.h
@@ -578,4 +578,13 @@ char * sss_reverse_replace_space(TALLOC_CTX *mem_ctx,
const char *orig_name,
const char replace_char);
+/* from become_user.c */
+errno_t become_user(uid_t uid, gid_t gid);
+struct sss_creds;
+errno_t switch_creds(TALLOC_CTX *mem_ctx,
+ uid_t uid, gid_t gid,
+ int num_gids, gid_t *gids,
+ struct sss_creds **saved_creds);
+errno_t restore_creds(struct sss_creds *saved_creds);
+
#endif /* __SSSD_UTIL_H__ */