无法设置 NTFS 分区上的文件的权限

无法设置 NTFS 分区上的文件的权限

我记得在安装 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您可能还需要添加 选项(我现在手边没有驱动器可以检查)。 的值告诉驱动程序要关闭哪些位,因此,例如,要允许所有用户读取、写入和执行,您应该有类似以下内容:execfmask

/dev/hda1  /mnt/windows  ntfs-3g  defaults,exec,fmask=000  0  0

如果已经有fmask选项,则打开执行位的最简单方法是从任何奇数中减去 1。

如果您不知道权限掩码的工作原理,基本思想是读取、写入和执行权限分别由值 4、2 和 1 表示。您可以将它们相加以组合权限,例如,读取 + 写入将是 6。权限掩码是适用于所有者、组和“其他”(其他所有人)的三个数字的组合。

只需记住fstab 中的fmask(也umaskdmask)是您想要的权限

举一个稍微有趣的例子,这将把所有者的权限设置为“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 分区安装任何东西。

相关内容