自动挂载的 NTFS 分区上的所有文件均标记为可执行文件

自动挂载的 NTFS 分区上的所有文件均标记为可执行文件

我已经设置了一个 NTFS 分区以通过 fstab 自动挂载:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda7 during installation
UUID=e63fa8a2-432f-4749-b9db-dab328807d04 /               ext4    errors=remount-ro 0          1
# /boot was on /dev/sda4 during installation
UUID=e9ad1bb4-7c1f-4ea9-a6a5-799dfad71c0a /boot           ext4    defaults        0       2
# /home was on /dev/sda8 during installation
UUID=eda8c755-5448-4de8-b58c-9cb75823c22d /home           ext4    defaults        0       2
# swap was on /dev/sda9 during installation
UUID=804ff3a7-e5dd-406a-b63c-e8f3c635fbc5 none            swap    sw              0       0

#Windows-Partition
UUID=368CEBC57807FDCD   /media/Share  ntfs    defaults,uid=1000,gid=1000,noexec    0   0

如您所见,我已将noexec位添加到配置中。为什么?因为我在分区上创建或移动到分区上的任何文件都会自动标记为可执行文件。

问题是没有办法通过 nautilus 改变这一点。我无法取消选中“允许将文件作为程序执行”选项。

不幸的是,这个noexec选项没有帮助。它只能阻止 nautilus 显示“运行”或“读取”对话框,但不能更改可执行标志。

有什么方法可以修复这个问题吗?

答案1

noexec选项与实际权限无关;它只是不允许从该分区运行任何内容:

~ $ ls -l test.sh
-rwxr-xr-x 1 jw jw 28 Aug 30 13:05 test.sh
~ $ ./test.sh
Hello world
~ $ sudo mount -o remount,noexec /home
~ $ ./test.sh
bash: ./test.sh: Permission denied
~ $ ls -l test.sh
-rwxr-xr-x 1 jw jw 28 Aug 30 13:05 test.sh

如您所见,一旦使用该选项挂载分区noexec,test.sh 就无法运行;但权限本身并没有改变。

NTFS 不支持可执行位。因此,系统如何查看 NTFS 以及如何设置权限仅取决于其安装方式。通常,这是通过umaskmount 选项完成的。这也解释了为什么您无法更改权限:没有办法存储它们,因为 NTFS 不支持它们。

不幸的是,如果您使用“不可执行”位挂载所有内容,您将无法切换到目录,因为它们必须是可执行的才能进入。您可以使用选项dmaskfmask分别设置已挂载 NTFS 系统上的目录和文件的默认权限。

答案2

在 January 的帮助下,我找到了以下可以解决我的问题的 fstab 选项:

umask=0000,fmask=0111

我的 NTFS 分区的 fstab 条目现在如下:

#Windows-Partition
UUID=368CEBC57807FDCD   /media/Share  ntfs  defaults,uid=1000,gid=1000,umask=0000,fmask=0111    0   0

来源:http://www.linuxquestions.org/questions/slackware-14/mount-ntfs-so-that-files-are-not-executable-buts-directories-are-363315/

编辑:更改这些选项还意味着您将无法在 NTFS 驱动器上将任何内容设置为可执行文件。就我而言,这不是问题,因为我不打算在此分区上存储任何可执行文件。

相关内容