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

Chromium无头模式生成PDF时非用户家目录路径写入失败问题求助

Chromium无头模式写入PDF到家目录外失败排查步骤

问题核心原因

Ubuntu 20.04 环境下的Chromium默认开启了沙箱安全限制(Snap沙箱或AppArmor策略),会阻止Chromium访问家目录、临时目录之外的路径,即使目标目录权限配置为777也会被拦截。

排查步骤

  • 第一步:验证基础目录权限
    先确认当前用户对目标路径的所有上层目录都有可执行(x)权限,且对目标目录有读写权限,执行如下测试命令:

    touch /var/www/test/test.pdf && rm /var/www/test/test.pdf
    

    如果命令执行失败,说明是目录权限配置问题,修正上层目录权限即可。如果执行成功,继续向下排查。

  • 第二步:确认Chromium安装类型
    执行命令查看安装源:

    apt list --installed | grep chromium
    

    如果输出中带有snap标识,说明是Snap版本的Chromium,默认受Snap沙箱限制:
    解决方法:给Chromium Snap开放对应目录的访问权限,执行命令:

    snap set chromium system-files="read,write /var/www/test"
    

    配置完成后重新执行PDF生成命令即可。

  • 第三步:排查AppArmor拦截
    如果是Deb包安装的Chromium,执行命令查看是否有AppArmor的拦截日志:

    dmesg | grep -i apparmor | grep chromium
    

    如果输出中有DENIED字样的记录,说明是AppArmor策略拦截了写入操作:
    解决方法:修改AppArmor配置文件/etc/apparmor.d/usr.bin.chromium-browser,在规则块中添加如下内容:

    /var/www/test/** rw,
    

    保存后重载规则即可生效:

    apparmor_parser -r /etc/apparmor.d/usr.bin.chromium-browser
    
  • 第四步:临时验证方法
    可以临时添加--no-sandbox参数测试是否为沙箱限制导致的问题:

    chromium-browser --headless --disable-gpu --no-sandbox --print-to-pdf='/var/www/test/test.pdf' 'https://www.google.com'
    

    注意:--no-sandbox仅用作临时验证,生产环境不建议长期开启,存在安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:18:00