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

Ubuntu环境下执行shell脚本出现permission denied报错的解决方案咨询

权限问题解决方案

首先确认权限报错的触发原因,按以下步骤配置即可对所有用户开放对应命令的执行权限:

1. 给shell脚本开放全局可执行权限

执行以下命令给test_image.sh开放所有用户的读、执行权限:

sudo chmod a+rx test_image.sh
  • 若脚本运行过程中需要修改自身内容,可额外追加写入权限:sudo chmod a+rwx test_image.sh,非必要场景不建议开放写入权限,避免文件被恶意篡改。

2. 解决输出文件写入权限问题

权限报错的另一常见原因是当前用户没有权限在目标目录生成testCase.txt,可二选一处理:

  • 方案A:开放脚本所在目录的全局读写执行权限(目录的执行权限是正常访问的必要条件)
    # 切换到test_image.sh所在目录后执行
    sudo chmod a+rwx ./
    
  • 方案B:提前创建输出文件并开放全局读写权限(比开放整个目录更安全)
    sudo touch testCase.txt
    sudo chmod a+rw testCase.txt
    

3. 特殊场景:脚本本身需要root权限运行

如果test_image.sh内部逻辑需要root权限才能执行(比如访问系统级硬件、修改系统配置等),上述文件权限配置无法解决问题,可配置sudo免密执行该脚本:

  1. 执行sudo visudo打开sudo配置文件
  2. 在文件末尾添加如下规则,注意替换为脚本的绝对路径:
    ALL ALL=(ALL) NOPASSWD: /opt/your_path/test_image.sh
    
  3. 保存退出后,所有用户执行sudo /opt/your_path/test_image.sh > testCase.txt无需输入密码,Java程序直接调用带sudo的命令即可正常运行。

验证

配置完成后切换到普通用户执行原命令,确认无permission denied报错即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:15:02