diff --git a/src/config_new.c b/src/config_new.c
index dacb9d3..01f63d6 100644
--- a/src/config_new.c
+++ b/src/config_new.c
@@ -1364,6 +1364,69 @@
 #endif /* NC_ENABLED_SSH_TLS */
 
 API int
+nc_server_config_new_unix_socket(const struct ly_ctx *ctx, const char *endpt_name, const char *path,
+        mode_t mode, uid_t uid, gid_t gid, struct lyd_node **config)
+{
+    int ret = 0;
+    char *tree_path = NULL;
+    char buf[12] = {0};
+
+    NC_CHECK_ARG_RET(NULL, ctx, endpt_name, path, config, 1);
+
+    if (asprintf(&tree_path, "/ietf-netconf-server:netconf-server/listen/endpoint[name='%s']/libnetconf2-netconf-server:unix-socket", endpt_name) == -1) {
+        ERRMEM;
+        tree_path = NULL;
+        ret = 1;
+        goto cleanup;
+    }
+
+    /* path to unix socket */
+    ret = nc_config_new_create_append(ctx, tree_path, "path", path, config);
+    if (ret) {
+        goto cleanup;
+    }
+
+    /* mode */
+    if (mode != (mode_t)-1) {
+        if (mode > 0777) {
+            ERR(NULL, "Invalid mode value (%o).", mode);
+            ret = 1;
+            goto cleanup;
+        }
+
+        sprintf(buf, "%o", mode);
+        ret = nc_config_new_create_append(ctx, tree_path, "mode", buf, config);
+        if (ret) {
+            goto cleanup;
+        }
+    }
+
+    /* uid */
+    if (uid != (uid_t)-1) {
+        memset(buf, 0, 12);
+        sprintf(buf, "%u", uid);
+        ret = nc_config_new_create_append(ctx, tree_path, "uid", buf, config);
+        if (ret) {
+            goto cleanup;
+        }
+    }
+
+    /* gid */
+    if (gid != (gid_t)-1) {
+        memset(buf, 0, 12);
+        sprintf(buf, "%u", gid);
+        ret = nc_config_new_create_append(ctx, tree_path, "gid", buf, config);
+        if (ret) {
+            goto cleanup;
+        }
+    }
+
+cleanup:
+    free(tree_path);
+    return ret;
+}
+
+API int
 nc_server_config_new_ch_persistent(const struct ly_ctx *ctx, const char *ch_client_name, struct lyd_node **config)
 {
     NC_CHECK_ARG_RET(NULL, ctx, ch_client_name, config, 1);
diff --git a/src/server_config.c b/src/server_config.c
index b6f693e..439071d 100644
--- a/src/server_config.c
+++ b/src/server_config.c
@@ -870,6 +870,7 @@
         close(bind->sock);
     }
 
+    unlink(bind->address);
     free(bind->address);
     free(opts->address);
 
diff --git a/src/server_config.h b/src/server_config.h
index bf12757..1bfa885 100644
--- a/src/server_config.h
+++ b/src/server_config.h
@@ -123,6 +123,23 @@
 #endif /* NC_ENABLED_SSH_TLS */
 
 /**
+ * @brief Creates new YANG data nodes for a UNIX socket.
+ *
+ * @param[in] ctx libyang context.
+ * @param[in] endpt_name Arbitrary identifier of the endpoint.
+ * If an endpoint with this identifier already exists, its contents might be changed.
+ * @param[in] path Path to the socket.
+ * @param[in] mode New mode, use -1 for default.
+ * @param[in] uid New uid, use -1 for default
+ * @param[in] gid New gid, use -1 for default
+ * @param[in,out] config Configuration YANG data tree. If *config is NULL, it will be created.
+ * Otherwise the new YANG data will be added to the previous data and may override it.
+ * @return 0 on success, non-zero otherwise.
+ */
+int nc_server_config_new_unix_socket(const struct ly_ctx *ctx, const char *endpt_name, const char *path,
+        mode_t mode, uid_t uid, gid_t gid, struct lyd_node **config);
+
+/**
  * @brief Deletes an endpoint from the YANG data.
  *
  * @param[in] endpt_name Optional identifier of an endpoint to be deleted.
