62 lines
3.3 KiB
Diff
62 lines
3.3 KiB
Diff
|
|
From 402c5c17885db59b15ed06c1f1bf92f2378b6f90 Mon Sep 17 00:00:00 2001
|
|||
|
|
From: liqiang <liqiang64@huawei.com>
|
|||
|
|
Date: Sat, 16 Dec 2023 16:26:28 +0800
|
|||
|
|
Subject: [PATCH] fix read/write fifo failed problem and update rexec whitelist
|
|||
|
|
descriptor in readme
|
|||
|
|
|
|||
|
|
Signed-off-by: liqiang <liqiang64@huawei.com>
|
|||
|
|
---
|
|||
|
|
qtfs/README.md | 8 ++++----
|
|||
|
|
qtfs/qtfs_server/server_fifo.c | 6 ++----
|
|||
|
|
2 files changed, 6 insertions(+), 8 deletions(-)
|
|||
|
|
|
|||
|
|
diff --git a/qtfs/README.md b/qtfs/README.md
|
|||
|
|
index 3721f44..2ffdce6 100644
|
|||
|
|
--- a/qtfs/README.md
|
|||
|
|
+++ b/qtfs/README.md
|
|||
|
|
@@ -134,13 +134,13 @@ Tips:若完成测试环境的配置后,无法通过客户端访问所挂载
|
|||
|
|
|
|||
|
|
1. rexec工具依赖上述udsproxyd服务,使用udsproxyd提供的uds协同进行通信,请确认udsproxyd正常启动。
|
|||
|
|
|
|||
|
|
-2. 配置白名单,将qtfs/config/rexec/whitelist文件拷贝至/etc/rexec/下,请手动配置需要的白名单选项,在其中增加允许执行的二进制命令。
|
|||
|
|
+2. 为rexec_server配置白名单,将qtfs/config/rexec/whitelist文件拷贝至/etc/rexec/下,请手动配置需要的白名单选项,在其中增加允许执行的二进制命令,请注意该白名单应该配置在rexec_server运行的系统上,如果双向运行,则两侧都需要配置,rexec_server服务只接受该白名单列出的二进制拉起执行,不在白名单中的请求会被rexec_server拒绝拉起。
|
|||
|
|
|
|||
|
|
-3. 在udsconnect中增加rexec通信socket所在目录白名单,增加方式有两种:
|
|||
|
|
+3. 为rexec端配置uds白名单(这个白名单只在需要调用rexec二进制的系统中配置,如果是双向则都配置),在udsconnect中增加rexec通信socket所在目录白名单,增加方式有两种:
|
|||
|
|
|
|||
|
|
- 1. 在/etc/qtfs/whitelist的`[udsconnect]`表项中增加`/var/run/rexec`,修改后需要重新部署qtfs使其生效。
|
|||
|
|
+ 1. 在qtfs_server端可以将/etc/qtfs/whitelist的`[udsconnect]`表项中增加`/var/run/rexec`,修改后需要重新启动engine进程使其生效。
|
|||
|
|
|
|||
|
|
- 2. 进入源码目录`qtinfo/`,执行`make`编译得到二进制。使用qtcfg进行配置:`qtcfg -w udsconnect -x /var/run/rexec`,配置完成后可通过`qtcfg -w udsconnect -z`查询是否生效
|
|||
|
|
+ 2. 使用前述的qtcfg进行配置:`qtcfg -w udsconnect -x /var/run/rexec`,配置完成后可通过`qtcfg -w udsconnect -z`查询是否生效。qtcfg可以在qtfs client或者server端动态添加白名单,qtfs server端应该在engine拉起后执行。
|
|||
|
|
|
|||
|
|
4. 拉起rexec_server作为服务端,无需参数
|
|||
|
|
|
|||
|
|
diff --git a/qtfs/qtfs_server/server_fifo.c b/qtfs/qtfs_server/server_fifo.c
|
|||
|
|
index 1839a88..7e4320e 100644
|
|||
|
|
--- a/qtfs/qtfs_server/server_fifo.c
|
|||
|
|
+++ b/qtfs/qtfs_server/server_fifo.c
|
|||
|
|
@@ -324,8 +324,7 @@ int fifo_proc_readable(struct fifo_event_t *evt)
|
|||
|
|
log_err("read from fifo:%d failed, readlen:%d, errno:%d", evt->fd, readlen, errno);
|
|||
|
|
ret = errno;
|
|||
|
|
free(msg);
|
|||
|
|
- if (errno == EPIPE)
|
|||
|
|
- error_ret = FIFO_RET_DEL_BOTH;
|
|||
|
|
+ error_ret = FIFO_RET_DEL_BOTH;
|
|||
|
|
goto err_ack;
|
|||
|
|
}
|
|||
|
|
rsp->err = 0;
|
|||
|
|
@@ -385,8 +384,7 @@ int fifo_proc_writeable(struct fifo_event_t *evt)
|
|||
|
|
log_err("write to fifo failed, ret:%d errno:%d", ret, errno);
|
|||
|
|
ret = errno;
|
|||
|
|
free(msg);
|
|||
|
|
- if (errno == EPIPE)
|
|||
|
|
- error_ret = FIFO_RET_DEL_BOTH;
|
|||
|
|
+ error_ret = FIFO_RET_DEL_BOTH;
|
|||
|
|
goto err_ack;
|
|||
|
|
}
|
|||
|
|
rsp.err = 0;
|
|||
|
|
--
|
|||
|
|
2.37.1 (Apple Git-137.1)
|
|||
|
|
|