Termux运行Rust/C++编译产物提示Permission denied报错如何解决
修复方案
报错根因
bash: ./main: Permission denied 报错本质是目标可执行文件未被赋予执行权限,极少数情况是文件存放在不支持Linux权限位的分区,导致权限标记失效。
操作步骤
- 第一步:给可执行文件添加执行权限
直接运行以下命令即可:
命令执行完成后再运行chmod +x ./main./main即可正常启动程序。 - 若上述操作后仍然报错,按以下规则排查:
- 检查项目存储路径:如果你的代码和编译产物存放在
/sdcard、/storage/emulated/0这类手机公共存储目录,会因为该类目录使用FAT32/vfat文件系统,不支持Linux执行权限标记导致问题。将整个项目迁移到Termux私有目录(例如~/code路径下)重新编译运行即可。 - 检查文件所有者:若你之前使用root权限操作过该文件,可能导致文件所有者异常,可以运行
chown $USER:$USER ./main修正所有者后,再重新添加执行权限。
- 检查项目存储路径:如果你的代码和编译产物存放在
验证方法
你可以运行ls -l ./main查看文件权限:
- 无执行权限时输出的权限位为
-rw------- - 成功添加执行权限后输出的权限位为
-rwx------
内容的提问来源于stack exchange,提问作者Siriusmart
相关产品推荐
相关产品推荐

