无法运行已编译的文件 - bash:./a.out:权限被拒绝。(我已尝试 chmod)

无法运行已编译的文件 - bash:./a.out:权限被拒绝。(我已尝试 chmod)

首先,AU 上有很多这样的问题。但是都没有解决我的问题。

我已经使用编译了我的 C 源代码cc test.c,并且它确实生成了a.out文件。

但是当我运行它时出现这个错误 -

bash: ./a.out: Permission denied

我的源代码不在主目录中,而是在不同的 FAT-32 分区上,因此我使用以下命令安装了代码所在的驱动器 -

$ udisks --mount /dev/sda7 --mount-options umask=022
Mounted /org/freedesktop/UDisks/devices/sda7 at /media/48E9-FD53
$ cd /media/48E9-FD53/C

然后我使用编译我的代码cc

我也尝试过gcc。但仍然出现相同的错误。

然后我做了 - chmod +x a.out,问题依然存在。对于 ( chmod 755 a.out) 和 也是如此chmod u+x a.out

我也尝试使用 编译和执行该程序sudo

我也尝试过—— sudo chown sannidhya:sannidhya a.out

我尝试了在 AU 上找到的所有东西,但仍然无法让它发挥作用。

我如何运行.out文件(不将其移动到主目录)?

笔记- 我正在使用 Ubuntu 12.04 LTS。

奇怪的事情即使在运行之后chmod +x a.out,在运行中 - ls -l a.out,我得到 -

-rw-r--r-- 1

a.out当我检查下的属性时权限选项卡中,只有 2 种可用模式Read onlyRead and Write

答案1

如果您将二进制文件从 FAT32 文件系统复制到您的本机 ext* 文件系统,则在授予正确的权限 (+x) 时,该二进制文件应该会运行。

文件系统可能在安装时没有执行权限。因此,除了 chmod 之外,您还需要检查文件系统的安装选项。

相关内容