我记得在安装 10.10 RC 之前,我可以运行放在 NTFS 分区上的 Linux .exe。但是如果我现在尝试运行它,我无法运行它,因为它没有执行权限。糟糕的是,我也无法更改权限。我很chmod
惊讶+x
,但它的权限没有任何变化。
所以这似乎是一个错误?有什么帮助吗?
虽然当我将其放在 ext4 分区上时,我可以设置权限。但我想像以前一样,直接从其默认 NTFS 位置执行此操作。
答案1
NTFS 不支持执行权限,因为它是为 Windows 设计的,而 Windows 不像 Linux 那样具有“可执行”文件的概念。如果您尝试在 Wine 中运行 Windows .exe 文件,只要您明确运行 wine,它应该仍然可以工作,如下所示:
wine /path/to/executable.exe
如果你确实需要直接执行文件,你可以设置将应用于全部fmask
使用 中的选项来禁用文件。如果 NTFS 的默认选项不是 ,/etc/fstab
您可能还需要添加 选项(我现在手边没有驱动器可以检查)。 的值告诉驱动程序要关闭哪些位,因此,例如,要允许所有用户读取、写入和执行,您应该有类似以下内容:exec
fmask
/dev/hda1 /mnt/windows ntfs-3g defaults,exec,fmask=000 0 0
如果已经有fmask
选项,则打开执行位的最简单方法是从任何奇数中减去 1。
如果您不知道权限掩码的工作原理,基本思想是读取、写入和执行权限分别由值 4、2 和 1 表示。您可以将它们相加以组合权限,例如,读取 + 写入将是 6。权限掩码是适用于所有者、组和“其他”(其他所有人)的三个数字的组合。
只需记住fstab 中的fmask
(也umask
和dmask
)是您想要的权限关。
举一个稍微有趣的例子,这将把所有者的权限设置为“rwx”,将组的权限设置为“rx”,将其他所有人的权限设置为“r”:
/dev/hda1 /mnt/windows ntfs-3g defaults,exec,fmask=023 0 0
答案2
/etc/fstab
我在我的文件中使用了如下一行:
/dev/sda5 /media/disk ntfs, user,noauto,exec 0 2
这样可以防止在启动时挂载分区,但允许我以 root 身份挂载:
sudo mount /dev/sda5
或者
sudo mount /media/disk
从命令行。
从“位置”安装会出现错误,因此此解决方案并不完美,但我愿意忍受它。希望这对其他人有用。
答案3
它看起来像是旧版本的一个错误......
尝试升级到 Wine 1.3
这对我有用,现在我可以直接从 NTFS 分区安装任何东西。