diff options
author | Johann Latocha | 2012-07-18 16:50:25 +0200 |
---|---|---|
committer | Johann Latocha | 2012-07-18 16:50:25 +0200 |
commit | 50f3a1a23e55111fc871c1f4bcd846da9334577a (patch) | |
tree | af15cebe1f127931ae5f0ccad09efd9600f4a65d | |
parent | [KERNEL] set dev number on module load (diff) | |
download | dnbd3-50f3a1a23e55111fc871c1f4bcd846da9334577a.tar.gz dnbd3-50f3a1a23e55111fc871c1f4bcd846da9334577a.tar.xz dnbd3-50f3a1a23e55111fc871c1f4bcd846da9334577a.zip |
[SERVER] Set groupid and permissions on ipc socket
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | client.conf.example (renamed from dnbd3-client.conf.example) | 0 | ||||
-rw-r--r-- | server.conf.example (renamed from dnbd3-server.conf.example) | 0 | ||||
-rw-r--r-- | src/config.h | 7 | ||||
-rw-r--r-- | src/server/ipc.c | 16 |
5 files changed, 20 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 08d52c9..7be240b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,7 +83,7 @@ ADD_CUSTOM_TARGET(${MODULE_NAME} ALL DEPENDS ${CMAKE_BINARY_DIR}/${MODULE_FILE}) INSTALL(TARGETS dnbd3-server dnbd3-client RUNTIME DESTINATION sbin) -INSTALL(FILES dnbd3-server.conf.example dnbd3-client.conf.example DESTINATION /etc/) +INSTALL(FILES server.conf.example client.conf.example DESTINATION /etc/dnbd3/) INSTALL(FILES ${CMAKE_BINARY_DIR}/${MODULE_NAME}.ko DESTINATION /lib/modules/${CMAKE_SYSTEM_VERSION}/kernel/drivers/block diff --git a/dnbd3-client.conf.example b/client.conf.example index 264632f..264632f 100644 --- a/dnbd3-client.conf.example +++ b/client.conf.example diff --git a/dnbd3-server.conf.example b/server.conf.example index d04aea0..d04aea0 100644 --- a/dnbd3-server.conf.example +++ b/server.conf.example 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 <sys/socket.h> #include <sys/un.h> #include <stdio.h> - +#include <sys/stat.h> +#include <grp.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h> @@ -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; |