mirror of
https://github.com/electerm/electerm-web-docker.git
synced 2026-04-24 21:25:50 +03:00
[GH-ISSUE #21] permission denied, mkdir '/home/electerm/data/sqlite' #16
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/electerm-web-docker#16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @wolfcdd on GitHub (Oct 11, 2025).
Original GitHub issue: https://github.com/electerm/electerm-web-docker/issues/21
升级后登录,提示这个错误,是需要手动更换为sqlite吗,原来的数据可以导入吗?
error › unhandledRejection Error: EACCES: permission denied, mkdir '/home/electerm/data/sqlite'
49
at Object.mkdirSync (node:fs:1363:26)
50
at file:///app/electerm-web/src/app/lib/sqlite.js:20:6
51
at ModuleJob.run (node:internal/modules/esm/module_job:345:25)
52
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:665:26)
53
at async getDbModule (file:///app/electerm-web/src/app/lib/db.js:10:16)
54
at async dbAction (file:///app/electerm-web/src/app/lib/db.js:16:14)
55
at async getConfig (file:///app/electerm-web/src/app/lib/init.js:12:22)
56
at async getConstants (file:///app/electerm-web/src/app/lib/get-constants.js:15:18)
@zxdong262 commented on GitHub (Oct 11, 2025):
切换到旧版,在数据同步那里导出数据,升级到新版后在数据同步那里导入
@zxdong262 commented on GitHub (Oct 11, 2025):
也需要写入文件夹权限,如果没有可以试试创建文件夹,在本地映射文件夹,注意一定要有写入权限
@sailcom commented on GitHub (Jan 31, 2026):
在docker里新安装的也出现这个报错。
在宿主机建立了对应的文件夹之后,不再报
permission denied, mkdir '/home/electerm/data/sqlite'这个错了。错误变成了:
@zxdong262 commented on GitHub (Feb 1, 2026):
看看数据文件是不是损坏了,如果损坏了可以删除试试
@sailcom commented on GitHub (Feb 1, 2026):
这个是新安装时候的报错,目录下不存在任何的数据文件
是不是系统不能自动创建数据库文件呀?
如果不能自动创建,我可以在那个目录下新建一个空的数据库文件吗?
@zxdong262 commented on GitHub (Feb 1, 2026):
那就还是权限问题,我刚试了新建个文件夹作为数据文件夹可以正常创建数据文件和运行
/Users/zxd/dev/electerm-web-docker/temp/data@sailcom commented on GitHub (Feb 2, 2026):
感谢 @zxdong262 大佬的详细解答。今天下午我在两台服务器分别尝试【新安装】了docker,并仔细分析了权限
服务器1:debian系统(已解决)
提前建立好目录,并使用上面的命令安装,安装后无法访问,查看日志报错:
permission denied, mkdir '/home/electerm/data/sqlite'。使用
docker exec electerm-web id命令查看docker运行时的用户,发现是999(electerm)之后,我把宿主机的映射目录的所有者也修改为999
此时再访问页面,得以成功连接!
服务器2:群晖系统(未解决)
在群晖同样按照上述步骤操作,修改映射目录的用户为
999,发现仍然无法连接。经过询问AI得知,虽然映射目录已改为了999,但是 999 这个用户并没有访问其父级目录
/volume1的权限,导致无法连接。之后AI告诉我第二种方式,让docker以
root的身份运行。也就是在启动docker时,使用环境变量
PUID和PGID修改运行用户为0(root),也就是在启动时加入以下参数:容器运行后,使用
docker exec electerm-web id命令再次查看运行的用户,发现仍然是
999(electerm),也就是说,PUID、PGID这两个参数并没有生效。期望
针对这个问题,我有两种改进的建议,仅供大佬参考:
999(electerm)改为0(root),这样可以解决一大部分人在linux系统安装docker后,因为权限导致无法使用的问题(不过AI提示这样会有一定的安全风险:容器一旦被攻破,攻击者将直接获得宿主机的 Root 权限);以上,感谢大佬抽出时间阅读。谢谢!
@zxdong262 commented on GitHub (Feb 2, 2026):
感谢反馈,现在最新版已发布,支持--user,这样就没有问题了
@sailcom commented on GitHub (Feb 2, 2026):
大佬神速!
在群晖安装新版本,使用root权限已成功运行,感谢!
👍👍👍