You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Qbittorrent写入文件报错“Errored: Couldn't write to file”权限问题求助

Qbittorrent写入文件报错“Errored: Couldn't write to file”权限问题求助

问题背景

作为Linux新手,我正被qbittorrent的写入报错问题卡壳,想请教大家:
我通过NFS把NAS挂载到/mnt/NAS/torrents/,计划让qbittorrent把文件下载到这里,之后由radarr、sonarr等工具自动转移到/mnt/NAS/Shows/Movies目录。但每次下载一开始,qbittorrent就直接报错:Errored: Couldn't write to file

我已经尝试过这些操作,但都没用:

  • 修改目标目录权限为当前用户(swayze)
  • 更换下载目录为/data/torrents/

唯一能正常工作的情况,就是使用qbittorrent默认的下载目录/home/swayze/Downloads/Torrents。目前所有涉及到的目录权限要么是root要么是我(swayze),且qbittorrent也是以swayze身份运行的,实在搞不懂明明权限都给了还是写不了文件?


我的排查建议(过来人经验)

兄弟,我之前也踩过类似的Linux权限坑,给你几个方向逐一排查:

  1. NFS挂载的权限参数是关键
    光改本地目录权限没用,NFS挂载本身就有权限限制。先看看你的挂载参数是否正确:

    • 先执行命令查看当前挂载的详细参数:
      mount | grep /mnt/NAS
      
    • 如果输出里没有uid=swayze,gid=swayze或者rw这类参数,说明NFS层面没放开写入权限。你需要修改/etc/fstab里的挂载项,比如改成:
      nas-server:/path/to/share /mnt/NAS nfs rw,uid=1000,gid=1000,defaults 0 0
      
      这里的1000是普通用户默认的uid/gid,你可以用id swayze命令确认自己的真实uid和gid。改完后执行sudo mount -a重新挂载。
  2. 确认qbittorrent的实际运行身份
    你说qbittorrent用swayze运行,但桌面环境启动的程序偶尔会有身份偏差。执行命令检查进程身份:

    ps aux | grep qbittorrent
    

    看输出里的用户列是不是swayze,如果是其他用户(比如root),那肯定会有权限冲突。

  3. 安全模块的隐形限制
    很多Linux发行版默认开启了SELinux(如CentOS/RHEL)或AppArmor(如Ubuntu),这些安全模块可能会阻止qbittorrent写入非默认目录:

    • SELinux临时关闭测试:sudo setenforce 0,如果能正常下载了,就需要给qbittorrent添加对应的SELinux规则
    • AppArmor临时关闭测试:sudo systemctl stop apparmor,如果有效,再配置对应的AppArmor规则(别一直关着,不安全)
  4. 检查父目录的权限
    有时候你只改了/mnt/NAS/torrents/的权限,但父目录/mnt/NAS甚至/mnt的权限可能不让swayze读写。执行命令查看所有父目录的权限:

    ls -ld /mnt /mnt/NAS /mnt/NAS/torrents
    

    确保每个目录对swayze用户都有读写执行权限。

先从这几个方向试,大概率能找到问题根源!

备注:内容来源于stack exchange,提问作者swayze

火山引擎 最新活动