summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com>2009-08-14 17:20:47 +0200
committerZdenek Prikryl <zdeny@dhcp-lab-218.englab.brq.redhat.com>2009-08-14 17:20:47 +0200
commit4739232edf3e57c32d108567c7e74b081b7ca0e3 (patch)
tree454714e05fdc10a2a91e3e3335827391f6c64958
parenta47af43af3cbb2106422e5930c8c67bf3c1e0ada (diff)
downloadabrt-4739232edf3e57c32d108567c7e74b081b7ca0e3.tar.gz
abrt-4739232edf3e57c32d108567c7e74b081b7ca0e3.tar.xz
abrt-4739232edf3e57c32d108567c7e74b081b7ca0e3.zip
created conf file has uid,gid of an user
-rw-r--r--src/Daemon/PluginManager.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Daemon/PluginManager.cpp b/src/Daemon/PluginManager.cpp
index 3fb81c0e..f4fe2738 100644
--- a/src/Daemon/PluginManager.cpp
+++ b/src/Daemon/PluginManager.cpp
@@ -281,7 +281,15 @@ void CPluginManager::SetPluginSettings(const std::string& pName,
std::string home = get_home_dir(atoi(pUID.c_str()));
if (home != "")
{
- SavePluginSettings(home + "/.abrt/" + pName + "." + PLUGINS_CONF_EXTENSION, pSettings);
+ std::string confPath = home + "/.abrt/" + pName + "." + PLUGINS_CONF_EXTENSION;
+ SavePluginSettings(confPath, pSettings);
+ uid_t uid = atoi(pUID.c_str());
+ struct passwd* pw = getpwuid(uid);
+ gid_t gid = pw ? pw->pw_gid : uid;
+ if (chown(confPath.c_str(), uid, gid) == -1)
+ {
+ perror_msg("can't change '%s' ownership to %u:%u", confPath.c_str(), (int)uid, (int)gid);
+ }
}
}
}