From 3b01b3e86392329f87d730a4d6e507e864bbce1c Mon Sep 17 00:00:00 2001
From: Steven Murray <Steven.Murray@cern.ch>
Date: Thu, 22 Mar 2018 15:49:15 +0100
Subject: [PATCH] Added DaemonUserName=cta and DaemonGroupName=tape to
 /etc/cta/cta-taped.conf

---
 tapeserver/daemon/TapeDaemon.cpp         | 4 ++--
 tapeserver/daemon/TapedConfiguration.cpp | 2 ++
 tapeserver/daemon/TapedConfiguration.hpp | 6 ++++++
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/tapeserver/daemon/TapeDaemon.cpp b/tapeserver/daemon/TapeDaemon.cpp
index b743ebb64b..edf0332c3f 100644
--- a/tapeserver/daemon/TapeDaemon.cpp
+++ b/tapeserver/daemon/TapeDaemon.cpp
@@ -81,8 +81,8 @@ void  cta::tape::daemon::TapeDaemon::exceptionThrowingMain()  {
   // raw IO in the future
   setProcessCapabilities("cap_setgid,cap_setuid+ep cap_sys_rawio+p");
 
-  const std::string userName = "cta";
-  const std::string groupName = "cta";
+  const std::string userName = m_globalConfiguration.daemonUserName.value();
+  const std::string groupName = m_globalConfiguration.daemonGroupName.value();
   daemonizeIfNotRunInForegroundAndSetUserAndGroup(userName, groupName);
   setDumpable();
 
diff --git a/tapeserver/daemon/TapedConfiguration.cpp b/tapeserver/daemon/TapedConfiguration.cpp
index 7f7d6831fb..8f81250ea9 100644
--- a/tapeserver/daemon/TapedConfiguration.cpp
+++ b/tapeserver/daemon/TapedConfiguration.cpp
@@ -32,6 +32,8 @@ TapedConfiguration TapedConfiguration::createFromCtaConf(
   ConfigurationFile cf(generalConfigPath);
   // Extract configuration from parsed config file
   // TpConfig
+  ret.daemonUserName.setFromConfigurationFile(cf, generalConfigPath);
+  ret.daemonGroupName.setFromConfigurationFile(cf, generalConfigPath);
   ret.logMask.setFromConfigurationFile(cf, generalConfigPath);
   ret.tpConfigPath.setFromConfigurationFile(cf, generalConfigPath);
   // Memory management
diff --git a/tapeserver/daemon/TapedConfiguration.hpp b/tapeserver/daemon/TapedConfiguration.hpp
index 16702901cb..80d259dca1 100644
--- a/tapeserver/daemon/TapedConfiguration.hpp
+++ b/tapeserver/daemon/TapedConfiguration.hpp
@@ -44,6 +44,12 @@ struct TapedConfiguration {
   //----------------------------------------------------------------------------
   // Basics: tp config
   //----------------------------------------------------------------------------
+  /// The user name of the cta-taped daemon process
+  SourcedParameter<std::string> daemonUserName{
+    "taped", "DaemonUserName", "cta", "Compile time default"};
+  /// The group name of the cta-taped daemon process
+  SourcedParameter<std::string> daemonGroupName{
+    "taped", "DaemonGroupName", "tape", "Compile time default"};
   /// The log mask.  Logs with a level lower than this value will be masked.
   SourcedParameter<std::string> logMask{
     "taped", "LogMask", "DEBUG", "Compile time default"};
-- 
GitLab