/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ * Copyright (c) 2016-2020 Samsung Electronics Co., Ltd. All rights reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#define CONF_DIR "/usr/share/security-manager/policy/"
#define CONF_GROUP_FILE "privilege-group.list"
+#define CONF_SYSTEMD_PRIVS_FILE "privilege-managed-by-systemd-for-daemons.list"
#define CONF_USER_TEMPLATE_FILE "usertype-%s.profile"
namespace SecurityManagerTest {
}
PolicyConfiguration::GidVector PolicyConfiguration::getGid() {
+ return groupToGid(getGroup());
+}
+
+PolicyConfiguration::GroupVector PolicyConfiguration::getGroup() {
GroupVector result;
if (m_privGroupMap.empty())
loadPrivGroupMap();
for (auto &e : m_privGroupMap)
result.push_back(e.second);
- return groupToGid(result);
+ return result;
}
PolicyConfiguration::UserDescription& PolicyConfiguration::getUserDescription(PolicyConfiguration::UserType userType) {
return result;
}
+PolicyConfiguration::PrivGroupMap PolicyConfiguration::getPrivGroupMap()
+{
+ if (m_privGroupMap.empty())
+ loadPrivGroupMap();
+ return m_privGroupMap;
+}
+
+bool PolicyConfiguration::getIsAskuserEnabled() {
+#ifdef ASKUSER_ENABLED
+ return true;
+#else
+ return false;
+#endif
+}
+
PolicyConfiguration::UserDescription PolicyConfiguration::loadUserDescription(PolicyConfiguration::UserType userType) {
UserDescription result;
std::string path = getConfigFilePath(userType);
return result;
}
-PolicyConfiguration::GroupVector PolicyConfiguration::privToGroup(const PolicyConfiguration::PrivVector &privVector) {
- GroupVector result;
- if (m_privGroupMap.empty())
- loadPrivGroupMap();
- for (auto &e : privVector) {
- auto it = m_privGroupMap.find(e);
- if (it == m_privGroupMap.end())
- continue;
- result.push_back(it->second);
+PolicyConfiguration::PrivVector PolicyConfiguration::getSystemdManagedPrivs()
+{
+ PolicyConfiguration::PrivVector result;
+ std::ifstream file(CONF_DIR CONF_SYSTEMD_PRIVS_FILE);
+ if (!file.is_open()) {
+ RUNNER_ASSERT_MSG(file.is_open(),
+ "Unable to read config file " << CONF_DIR CONF_SYSTEMD_PRIVS_FILE);
+ }
+ std::string line;
+ std::regex r("^(http(.*))");
+ while (std::getline(file, line)) {
+ std::smatch m;
+ if (std::regex_search(line, m, r))
+ result.emplace_back(m[1]);
}
return result;
}
}
}
+std::string PolicyConfiguration::getPkgRulesFilePath() {
+ return CONF_DIR "pkg-rules-template.smack";
+}
+std::string PolicyConfiguration::getAppRulesFilePath() {
+ return CONF_DIR "app-rules-template.smack";
+}
+
} // namespace SecurityManagerTest