diff --git a/groundStation/src/backend/backend.c b/groundStation/src/backend/backend.c
index 42db4a653ea6d12db5ea562e070bf748184e36aa..dfeb2433683efc6da314e3fca4299a08cfbf5c0b 100644
--- a/groundStation/src/backend/backend.c
+++ b/groundStation/src/backend/backend.c
@@ -17,6 +17,7 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <sys/select.h>
+#include <sys/stat.h>
 #include <bluetooth/bluetooth.h>
 #include <bluetooth/rfcomm.h>
 #include <pthread.h>
@@ -139,6 +140,7 @@ int main(int argc, char **argv)
 	unlink(backend_socket_path);
 
 	/* Create socket */
+	mode_t old_umask = umask(0000);
 	backendSocket = socket(AF_UNIX, SOCK_STREAM | SOCK_NONBLOCK, 0);
 	if (backendSocket < 0) {
 		err(-1, "socket");
@@ -152,6 +154,7 @@ int main(int argc, char **argv)
 	if (bind(backendSocket, (struct sockaddr *) &sa, sizeof(sa))) {
 		err(-1, "bind");
 	}
+	umask(old_umask);
 
 	/* Listen */
 	if (listen(backendSocket, 16)) {