From 50f3a1a23e55111fc871c1f4bcd846da9334577a Mon Sep 17 00:00:00 2001 From: Johann Latocha Date: Wed, 18 Jul 2012 16:50:25 +0200 Subject: [SERVER] Set groupid and permissions on ipc socket --- src/config.h | 7 ++++--- src/server/ipc.c | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/config.h b/src/config.h index b74ceab..bf5e668 100644 --- a/src/config.h +++ b/src/config.h @@ -40,8 +40,9 @@ #define DEFAULT_READ_AHEAD_KB 256 // misc -#define DEFAULT_SERVER_CONFIG_FILE "/etc/dnbd3-server.conf" -#define DEFAULT_CLIENT_CONFIG_FILE "/etc/dnbd3-client.conf" -#define UNIX_SOCKET "/tmp/dnbd3-server.sock" +#define DEFAULT_SERVER_CONFIG_FILE "/etc/dnbd3/server.conf" +#define DEFAULT_CLIENT_CONFIG_FILE "/etc/dnbd3/client.conf" +#define UNIX_SOCKET "/run/dnbd3-server.sock" +#define UNIX_SOCKET_GROUP "dnbd" #endif /* CONFIG_H_ */ diff --git a/src/server/ipc.c b/src/server/ipc.c index 522c4ca..674d20d 100644 --- a/src/server/ipc.c +++ b/src/server/ipc.c @@ -22,7 +22,8 @@ #include #include #include - +#include +#include #include #include #include @@ -68,6 +69,19 @@ void* dnbd3_ipc_receive() exit(EXIT_FAILURE); } + // Set groupID and permissions on ipc socket + struct group *grp; + grp = getgrnam(UNIX_SOCKET_GROUP); + if (grp == NULL) + { + printf("WARN: Group '%s' not found.\n", UNIX_SOCKET_GROUP); + } + else + { + chmod(UNIX_SOCKET, 0775); + chown(UNIX_SOCKET, -1, grp->gr_gid); + } + while (1) { int cmd, num, i = 0; -- cgit v1.2.3-55-g7522