最近在维护威联通的NAS时,顺手升级了一下系统,升级到了QTS5.2。本来以为是一个平稳的升级过程,结果升级后发现Goodsync for nas(gs-server)无法使用了。等待了一周的好几个版本官方也没有修复。于是只好自己检查他们的代码里是不是有什么坑。
最终发现QTS在升级到5.2后,系统中移除了root用户。admin用户成为了uid0的用户。因此触发了Goodsync程序中的一些权限异常导致程序退出。此处记录一下过程和修改方案。
QNAP下应用安装路径: /share/CACHEDEV1_DATA/.qpkg/
Goodsync应用安装路径:/share/CACHEDEV1_DATA/.qpkg/gs-server
应用运行日志:/var/log/gs-server-start-stop-status.log
应用全局配置:/share/CACHEDEV1_DATA/.qpkg/gs-server/etc/.goodsync/server/settings.tix
手动运行服务并观察报错信息
> GS_OS_SERVER_PROFILE=/share/CACHEDEV1_DATA/.qpkg/gs-server/etc/.goodsync /share/CACHEDEV1_DATA/.qpkg/gs-server/gs-server /webui-nas /service=root:root
gs-server: Profile at /share/CACHEDEV1_DATA/.qpkg/gs-server/etc/.goodsync/server
gs-server: === Started GoodSync (R) Ver 12.7.5.5 OS: Linux-QTS 5.2.0
gs-server: Web UI service listening to port 11000 on IP addr ANY
Segmentation fault
根据推断修改启动脚本:/share/CACHEDEV1_DATA/.qpkg/gs-server/gs-server.sh
使用管理员权限修改第25行代码:
"$QPKG_ROOT/gs-server" /webui-nas /service=root:root 2>> "$LOG_FILE"
# 改为
"$QPKG_ROOT/gs-server" /webui-nas /service=admin:administrators 2>> "$LOG_FILE"
之后可以手动关闭应用并重新启动,即可恢复正常运行。