linux - 如何在 Ubuntu 10.10 的 NTFS 上运行 C++ 二进制文件?

标签 linux eclipse-cdt file-permissions ubuntu-10.10

刚刚安装了 Ubuntu 10.10。以前我有 Ubuntu 10.04。我在 Ubuntu 和 Windows 之间有一个共享分区,它是 NTFS。我将我的开发文件(Eclipse C++ 项目文件)存储在该分区中。

问题来了:在 10.04 中一切正常,但现在我无法运行驻留在 NTFS 分区中的任何程序。 eclipse 说:

Error starting process.
Exec_tty error:Cannot run program "/media/../Eclipse/Hello/Debug/Hello": Unknown reason

当我尝试在终端中执行它时,它说:

bash: ./Hello: Permission denied

我知道这是权限问题,因为NTFS文件系统不支持Unix权限,但怎么可能在10.04上一切正常。此版本是否添加了对 NTFS 文件系统的任何限制?

有没有人遇到过类似的问题并且知道如何解决这个问题?

谢谢。

最佳答案

ntfs 文件系统的默认挂载选项可能在 Ubuntu 版本之间发生了变化。

在/etc/fstab 中找到控制相关挂载点的行。

首先要尝试:确保选项字符串不包含 noexec。如果是,请将其删除,umount,然后重新挂载并查看是否为您修复了它。

如果 noexec 不存在或您仍然无法执行,则检查 userusers 是否是选项之一。由于 user 意味着 noexec(通常),您可能需要添加(之后 user)选项 exec,因此结果将是:

user,exec

如果 user 存在,请尝试进行此更改,然后 umount 并重新挂载。

如果此时您仍然无法执行,则在相关挂载点的选项字符串中添加或设置以下挂载选项:

fmask=002

这可能过于宽松,但对于单用户系统应该没问题。这告诉 mount 文件系统中的所有文件在默认情况下都应该被视为(除其他外)可执行文件。现在 umount 并再次重新挂载,看看它是否正常工作。

关于linux - 如何在 Ubuntu 10.10 的 NTFS 上运行 C++ 二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306768/

相关文章:

c++ - 如何在 Eclipse CDT 中配置特定的 GCC 交叉工具链?

linux - 将 bash 脚本的输出写入带有日期的文件

c++ - ifstream.open()在Eclipse CDT中设置failbit?

linux - 将 Linux 内核 .config 文件复制到不同版本是否安全?

eclipse - Eclipse 中的注释模板变量

gradle - 在 gradle 复制任务中动态设置文件权限

linux - 如何使用 udev 规则更改特定文件权限?

linux - Unix权限设置速度

linux - 使用 pid 杀死进程并在系统调用中找到绑定(bind)到 pid 的用户

c - 建立与 IRC 的连接