You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jibri报AccessDeniedException但目录权限已配置,录制失败

Docker部署Jitsi-Meet中Jibri录制目录权限问题排查

问题说明

Docker部署的Jitsi-Meet环境里,连接Prosody的Jibri实例无法创建录制目录并写入文件,报错信息如下:

FileUtilsKt.createIfDoesNotExist#28: Error creating directory java.nio.file.AccessDeniedException: /run/s6/services/40-jibri/~ 
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90) 
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) 
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116) 
at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:389) 
at java.base/java.nio.file.Files.createDirectory(Files.java:690) 
at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:797) 
at java.base/java.nio.file.Files.createDirectories(Files.java:783) 
at org.jitsi.jibri.util.FileUtilsKt.createIfDoesNotExist(FileUtils.kt:26) 
at org.jitsi.jibri.service.impl.FileRecordingJibriService.start(FileRecordingJibriService.kt:153) 
at org.jitsi.jibri.JibriManager.startService$lambda-2(JibriManager.kt:239) 
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) 
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) 
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
at java.base/java.lang.Thread.run(Thread.java:829)

已手动创建目录、设置所有用户/组读写权限,且Docker绑定卷正常(日志可写入该目录),但问题依旧,ffmpeg无日志可排查。

可能遗漏的配置点

  • Jibri容器运行用户权限:Jibri默认以非root用户(通常是jibri)运行,即便宿主机目录权限全开,容器内该用户可能无对应目录的读写权限。需确保容器内jibri用户对挂载的录制目录拥有完整权限,可在启动容器时指定与宿主机目录所有者匹配的UID和GID,或在Dockerfile中调整用户权限。
  • 录制目录配置错误:检查Jibri配置文件(通常为/etc/jitsi/jibri/config.json)中的recording_directory字段,确认指向Docker绑定卷的容器内路径,而非宿主机路径。报错中的/run/s6/services/40-jibri/~是s6服务目录(root权限),说明配置里的录制目录可能被错误设为当前用户家目录(~),需修改为正确的挂载卷路径。
  • SELinux/AppArmor限制:若宿主机启用SELinux或AppArmor,可能阻止容器内进程写入挂载目录。可临时关闭SELinux(setenforce 0)测试,或为挂载目录添加SELinux上下文(chcon -Rt svirt_sandbox_file_t /你的宿主机目录)。
  • Docker卷挂载细节:确认绑定卷挂载语法为宿主机路径:容器内路径,且容器内挂载路径的父目录权限允许jibri用户创建子目录。
  • S6服务目录权限冲突:/run/s6/services/40-jibri/是s6管理的服务目录,权限归所有root,Jibri无法在此创建子目录,必须修改配置将录制目录指定到挂载的卷路径。

内容的提问来源于stack exchange,提问作者Teddydotpy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:55:02