1
diff --git a/mcp/pacemaker.c b/mcp/pacemaker.c
2
index cfa762e..6cc64c5 100644
5
@@ -631,6 +631,16 @@ struct qb_ipcs_service_handlers ipc_callbacks =
10
+mcp_chown(const char *path, uid_t uid, gid_t gid)
12
+ int rc = chown(path, uid, gid);
14
+ crm_warn("Cannot change the ownership of %s to user %s and gid %d: %s",
15
+ path, CRM_DAEMON_USER, gid, pcmk_strerror(errno));
20
main(int argc, char **argv)
22
@@ -775,20 +785,30 @@ struct qb_ipcs_service_handlers ipc_callbacks =
25
mkdir(CRM_STATE_DIR, 0750);
26
- rc = chown(CRM_STATE_DIR, pcmk_uid, pcmk_gid);
28
- crm_warn("Cannot change the ownership of %s to user %s and gid %d",
29
- CRM_STATE_DIR, CRM_DAEMON_USER, pcmk_gid);
31
+ mcp_chown(CRM_STATE_DIR, pcmk_uid, pcmk_gid);
33
/* Used by stonithd */
34
build_path(HA_STATE_DIR "/heartbeat", 0755);
35
+ mcp_chown(HA_STATE_DIR, pcmk_uid, pcmk_gid);
37
/* Used by RAs - Leave owned by root */
38
build_path(CRM_RSCTMP_DIR, 0755);
40
/* Used to store core files in */
41
build_path(CRM_CORE_DIR, 0755);
42
+ mcp_chown(CRM_CORE_DIR, pcmk_uid, pcmk_gid);
44
+ /* Used to store blackbox dumps in */
45
+ build_path(CRM_BLACKBOX_DIR, 0755);
46
+ mcp_chown(CRM_BLACKBOX_DIR, pcmk_uid, pcmk_gid);
48
+ /* Used to store policy engine inputs in */
49
+ build_path(PE_STATE_DIR, 0755);
50
+ mcp_chown(PE_STATE_DIR, pcmk_uid, pcmk_gid);
52
+ /* Used to store the cluster configuration */
53
+ build_path(CRM_CONFIG_DIR, 0755);
54
+ mcp_chown(CRM_CONFIG_DIR, pcmk_uid, pcmk_gid);
56
/* Per-user core directories */
57
if (mkdir(CRM_CORE_DIR"/root", 0700) < 0 && errno != EEXIST) {
58
@@ -798,9 +818,7 @@ struct qb_ipcs_service_handlers ipc_callbacks =
59
if (mkdir(CRM_CORE_DIR"/"CRM_DAEMON_USER, 0700) < 0 && errno != EEXIST) {
60
crm_perror(LOG_INFO, "Could not create %s", CRM_CORE_DIR"/"CRM_DAEMON_USER);
62
- if(chown(CRM_CORE_DIR"/"CRM_DAEMON_USER, pcmk_uid, pcmk_gid) < 0) {
63
- crm_perror(LOG_ERR, "Could not change the ownership of %s to %s", CRM_CORE_DIR"/"CRM_DAEMON_USER, CRM_DAEMON_USER);
65
+ mcp_chown(CRM_CORE_DIR, pcmk_uid, pcmk_gid);
68
client_list = g_hash_table_new(g_direct_hash, g_direct_equal);