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

使用OWASP ZAP全扫描Docker镜像生成报告时遇Permission denied错误

解决Jenkins中OWASP ZAP Docker镜像生成HTML报告权限拒绝问题

问题描述

在Jenkins执行如下OWASP ZAP全扫描阶段时:

stage('OWASP ZAP Full Scan') {    
    steps {      
        script {       
            sh "sudo docker run -v /var/lib/jenkins/workspace/Front:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t http://192.168.56.7:80/ -r testreport.html"  
        }    
    } 
}

扫描执行后无法生成HTML报告,报错信息如下:

ERROR [Errno 13] Permission denied: '/zap/wrk/testreport.html'
2024-04-16 09:30:57,094 I/O error: [Errno 13] Permission denied: '/zap/wrk/testreport.html'
Traceback (most recent call last):
  File "/zap/zap-full-scan.py", line 469, in main
    write_report(os.path.join(base_dir, report_html), zap.core.htmlreport())
  File "/zap/zap_common.py", line 569, in write_report
    with open(file_path, mode='wb') as f:
PermissionError: [Errno 13] Permission denied: '/zap/wrk/testreport.html'
Found Java version 11.0.22
Available memory: 8719 MB
Using JVM args: -Xmx2179m

解决方案

1. 匹配容器用户与主机目录权限

ZAP容器默认以zap用户(UID 1000)运行,主机Jenkins工作目录可能属于jenkins用户,导致容器内用户无写入权限。执行以下命令修改目录所属权限:

sudo chown -R 1000:1000 /var/lib/jenkins/workspace/Front

修改后重新触发扫描任务即可。

2. 指定容器以Jenkins用户身份运行

先通过id jenkins命令获取主机Jenkins用户的UID(假设为1001),然后在Docker运行命令中指定该用户:

stage('OWASP ZAP Full Scan') {    
    steps {      
        script {       
            sh "sudo docker run -u 1001:1001 -v /var/lib/jenkins/workspace/Front:/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-full-scan.py -t http://192.168.56.7:80/ -r testreport.html"  
        }    
    } 
}

3. 临时开放目录全局写入权限(仅测试场景)

若只是临时测试,可临时给目录添加全局写入权限,但此方法存在安全风险,生产环境禁止使用:

sudo chmod -R 777 /var/lib/jenkins/workspace/Front

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:22:43