From: Sage Weil Date: Mon, 8 Feb 2016 16:19:08 +0000 (-0500) Subject: global: record target uid/gid in cct X-Git-Tag: v10.1.0~217^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c8c1603fa2e352002bdb76b74b48421c6241dc4d;p=ceph.git global: record target uid/gid in cct Signed-off-by: Sage Weil --- diff --git a/src/common/ceph_context.cc b/src/common/ceph_context.cc index 5470807e9527..9cf85874701e 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 99b2181b844e..b91b7e7a3a81 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 bca47eb5af14..e8c12f4f9607 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)