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

在挂载外部设备执行cargo build时遭遇OS error 13权限拒绝问题

解决外部挂载分区上cargo build后无法执行程序的权限问题

问题原因

你遇到的Permission denied (os error 13)错误,核心原因是外部分区挂载时默认禁用了执行权限。虽然你设置了读写权限并修改了目录所有者,但users挂载选项会默认启用noexec(禁止执行分区内的二进制文件),这是Linux的安全机制,防止普通用户挂载的分区执行恶意程序。

解决方案

1. 临时验证(无需修改配置)

先临时重新挂载分区并开启执行权限,验证是否解决问题:

sudo mount -o remount,rw,exec /mnt/external

回到项目目录,运行编译后的程序:

cd /mnt/external/testexternal
./target/debug/testexternal

如果能正常执行,说明就是挂载选项的问题。

2. 永久修复(修改fstab)

编辑/etc/fstab文件,在挂载选项中添加exec,覆盖users默认带来的noexec限制:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/external        ext4    defaults,noatime,users,rw,auto,exec 0 0

保存后重新挂载分区:

sudo umount /mnt/external && sudo mount /mnt/external

之后再执行cargo build或cargo run即可正常运行程序。

额外检查

如果上述操作后仍有问题,检查二进制文件的执行权限:

ls -l target/debug/testexternal

正常情况下cargo编译生成的文件应带有x权限(如-rwxr-xr-x),如果没有,可手动添加:

chmod +x target/debug/testexternal

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:22:37