Go run permission denied的问题分析与解决方案是怎样的
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,Go run permission denied的问题分析与解决方案是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获
千家信息网最后更新 2025年12月03日Go run permission denied的问题分析与解决方案是怎样的
Go run permission denied的问题分析与解决方案是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
0x01 问题
一次同事反馈在环境中,执行go run xx.go时出现如下异常提示。
fork/exec /tmp/go-build104992250/b001/exe/h: permission denied
有点兴趣,所以就动手查了下。查的过程比较简单,希望会有所帮助。
0x02 分析
出现这个问题,原因是go在/tmp目录下生成的可执行文件没有执行权限,当Go去执行时就会报错。 为什么会没有执行权限呢? 请教了同事之后,确认了开发环境中的/tmp的挂载选项中如下所示。
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=524288k)
其中有一个选项为noexec。mount的man page中如下描述,这个选项是可以禁止掉二进制的可执行权限,这会提高系统的安全性。实测这个选项对Shell、Python这种脚本语言的可执行脚本也有效果。
noexec Do not permit direct execution of any binaries on the mounted filesystem.
0x03 解决
既然这个选项是安全要求的,自然不能去修改。转换下思路,能不能让Go换个地方。直觉告诉我,应该有个环境变量控制这个行为。很遗憾在国内并没有搜到。
既然是环境变量,那就去源码目录里搜索下。 通过GOROOT环境变量,确认了Go中的环境变量具有如下特征。 env GOROOT=$WORK/parent/goroot 有一个env的前缀。 grep 'env ' -rIn . | grep -i tmp 执行后,找到了GOTMPDIR这个环境变量。 在环境里试了下,GOTMPDIR=/root go run xxx.go之后,运行成功。问题解决了。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
环境
变量
问题
权限
帮助
分析
安全
同事
目录
脚本
方案
解决方案
清楚
成功
遗憾
二进制
兴趣
内容
前缀
原因
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怎样用cmd操作数据库
集中监控服务器运行软件
服务器代理高匿清洗
甘肃中泓百谛软件开发有限公司
朝阳市计算机软件开发招聘
最新软件开发费用国家标准
软件开发怎么找本地客户
数据库操作系统的特点
软件开发培训学校工
英语四级学习用哪个数据库
计算机网络安全论文1500
玉树软件开发规定
mc服务器崩溃会回档么
国家网络安全协调中心地址
河北绿澜网络技术有限公司
网络安全影响国家软实力提升
华工数据库实验二-五答案
数据库设计中关系规范化的意义
违反网络安全法37条案例
苹果手机软件开发
在广州打车用什么软件开发
安徽程序软件开发哪家正规
湖州网站建设软件开发
亿格瑞连接群晖无法登录服务器
网络安全责任制实施 细则
微软开源文件数据库
重点单位数据库是啥
苏州软件开发集中在哪里
我们国家有自己的服务器英语
cmd启动服务器