From c8c1603fa2e352002bdb76b74b48421c6241dc4d Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 8 Feb 2016 11:19:08 -0500 Subject: [PATCH] global: record target uid/gid in cct Signed-off-by: Sage Weil --- src/common/ceph_context.cc | 2 ++ src/common/ceph_context.h | 14 ++++++++++++++ src/global/global_init.cc | 1 + 3 files changed, 17 insertions(+) diff --git a/src/common/ceph_context.cc b/src/common/ceph_context.cc index 5470807e9527c..9cf85874701ef 100644 --- a/src/common/ceph_context.cc +++ b/src/common/ceph_context.cc @@ -438,6 +438,8 @@ CephContext::CephContext(uint32_t module_type_, int init_flags_) _log(NULL), _module_type(module_type_), _init_flags(init_flags_), + _set_uid(0), + _set_gid(0), _crypto_inited(false), _service_thread(NULL), _log_obs(NULL), diff --git a/src/common/ceph_context.h b/src/common/ceph_context.h index 99b2181b844e4..b91b7e7a3a81b 100644 --- a/src/common/ceph_context.h +++ b/src/common/ceph_context.h @@ -153,6 +153,17 @@ public: return _plugin_registry; } + void set_uid_gid(uid_t u, gid_t g) { + _set_uid = u; + _set_gid = g; + } + uid_t get_set_uid() const { + return _set_uid; + } + gid_t get_set_gid() const { + return _set_gid; + } + private: struct SingletonWrapper : boost::noncopyable { virtual ~SingletonWrapper() {} @@ -179,6 +190,9 @@ private: int _init_flags; + uid_t _set_uid; ///< uid to drop privs to + gid_t _set_gid; ///< gid to drop privs to + bool _crypto_inited; /* libcommon service thread. diff --git a/src/global/global_init.cc b/src/global/global_init.cc index bca47eb5af143..e8c12f4f96079 100644 --- a/src/global/global_init.cc +++ b/src/global/global_init.cc @@ -202,6 +202,7 @@ void global_init(std::vector < const char * > *alt_def_args, << st.st_uid << ":" << st.st_gid << ". "; } } + g_ceph_context->set_uid_gid(uid, gid); if (setgid(gid) != 0) { int r = errno; cerr << "unable to setgid " << gid << ": " << cpp_strerror(r) -- 2.39.5