53 Star 555 Fork 79

GVP星火计划 Project Spark / 星火应用商店 Spark-Store

 / 详情

无法加载界面

已关闭
创建于  
2021-04-05 08:47

在本机,先用root运行星火应用商店,再使用普通用户权限运行时会加载不出资源(权限问题)
输入图片说明

评论 (10)

gfdgd xi 创建了任务
展开全部操作日志

看下 /tmp/spark-store 里面下载的临时资源文件的权限是啥......估计 Maicss 大佬写的时候也没考虑到这种情况......

重启应该就好了

重启的确是会好,就是这一点能不能避免一下,可不可以在这个目录无法访问(权限错误)时重新新建一个新的文件夹或每次启动都会新建一个不同的文件夹(例如 /tmp/spark-store-xxxxx)

直接不让root权限运行吧。

为啥要用root权限来运行呢?

shenmo 任务状态待办的 修改为已拒绝

请不要用root权限运行
整体设计的时候为了避免安全问题,单独分离出安装提权,主程序不提权,因此没考虑过root运行主程序

又发现权限问题(应该是 /tmp/spark-store 的权限问题),在A账号登录后不重启切换到B账号登录启动(非 root)星火商店会出现如上或下图的报错
输入图片说明

可以变化一下临时缓存文件夹的名字,加后缀

    //widget.cpp 第560行
   QProcess get_json;
    QDir dir("/tmp");
    dir.mkdir("spark-store");
    QDir::setCurrent("/tmp/spark-store");

可以把这里的spark-store文件夹添加后缀,可行的方案是:
1.添加随机数,并且判断生成的随机数所匹配的文件夹是否已经存在,防止冲突。 (推荐)
2.添加用户名,通过读取USER环境变量读取用户名,但此方法对sudo无用,sudo并不会识别为root。
3.将缓存文件夹设置为777,这样大家谁也不冲突了。

另外建议全文搜索"/tmp/spark-store",小的当初写的时候很菜(现在也菜),所以可能很多地方都写了这个路径,检查一下别有遗漏。

protip:C语言本身就提供了临时文件用的文件名的生成函数,可以在有权限问题时生成新的。

Maicss 任务状态已拒绝 修改为待办的

该问题已经由 @枯叶蚊 大佬修复,使用第三方库下载详情页资源文件,不会出现缓存无法写入的问题了。

P.S. 软件包下载位置暂时还没有修改,root 权限下运行后还是会有类似问题。

zty199 任务状态待办的 修改为进行中
shenmo 任务状态进行中 修改为已取消

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(6)
7392693 zty199 1585638509 1660943 maicss 1643103873 7896131 gfdgd xi 1712724632 4915358 shenmo7192 1714956823
C++
1
https://gitee.com/spark-store-project/spark-store.git
git@gitee.com:spark-store-project/spark-store.git
spark-store-project
spark-store
星火应用商店 Spark-Store

搜索帮助

344bd9b3 5694891 D2dac590 5694891