自动挂载的NTFS分区上的默认挂载选项(如何添加`noexec`和`fmask = 0111`?)


9

我使用外部USB设备的自动挂载,并且它按预期工作,除了NTFS分区在挂载了可执行性标志的情况下。例如:

/dev/sdb1 on /media/Elements type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)

所有普通文件都-rwxrwxrwx在此分区上。我对xs 不满意。我知道如果我通过该fmask=0111选件,便可以按照我想要的方式安装它。

现在,我使用Lucid,并假设它使用了一些新的自动挂载机制(gvfs-mount?),但我真的不知道现在如何更改默认挂载选项。Gconf设置/system/storage/default_options/ntfs/mount_options无效。

因此,如何fmask=0111为所有NTFS分区设置默认的自动挂载选项?(如果有人解释当前的自动挂载机制如何工作,如何配置,以及如果默认的挂载选项是硬编码的,那么我必须重新编译以更改它们,我也将不胜感激)。

我知道我可以/etc/fstab手动在和/或挂载一行,但这不是我想要的解决方案,因为1)我不想为/etc/fstab我使用的每个外部驱动器进行编辑,2)fstab记录出现在即使没有驱动器,也请单击Nautilus的“位置”窗格。问题是如何更改默认值。

更新:安装udisks 1.0.1+git20100614或更高版本会为NTFS提供更合理的默认值,剩下的问题是用户如何指定任意安装选项。


这些可能是相关的错误:bugs.launchpad.net/ubuntu/+source/gnome-mount/+bug/78505 bugs.launchpad.net/ubuntu/+source/udisks/+bug/14335和许多重复的错误。这个问题似乎已经在udisks 1.0.1 + git20100614-1中解决了,但是Lucid尚不可用。
— 萨斯坦宁

4
太可惜了,这个问题被关闭了。我也在寻找一种为特定的自动挂载文件系统强制特定挂载选项的方法。
— mivk 2012年

1
@mivk我也认为结案是不合适的。我正在寻找一种使NTFS驱动器自动挂载“
— windows_names

Answers:


1

如果默认的安装选项是硬编码的,我必须重新编译才能更改它们

使用自定义默认值编辑文件device.c:

mkdir -p build/udisks
cd build/udisks
apt-get source udisks
gedit udisks-1.0.1/src/device.c

搜索ntfs_defaults,编辑,保存并退出。
如果挂载选项不在ntfs_allow下面的列表中ntfs_defaults,还必须将新选项添加​​到中ntfs_allow。

生成(有关pbuilder的方法,请参见其他答案):

cd udisks-1.0.1
dch -l custom "Mount custom defaults fix."
dpkg-buildpackage -b -us -uc -rfakeroot

安装新编译的udisk:

sudo dpkg -i ../udisks_1.0.1-1ubuntu1custom1_amd64.deb

1)我问的是NTFS而不是FAT。2)我看不到建议的补丁(15-vfat-UTC.patch)如何配置noexec和fmask安装NTFS分区的选项。照原样,您的答案是题外话,没有用。
— sastanin 2011年

@jetxee 1)看一眼:gedit udisks-1.0.1/src/device.c我不想只帮助您,而只是一般帮助。2)就有关如何共享一个例子您对补丁的具体问题。我不会做你的每一次作业,你要改变每其他默认。只要在device.c中的位置搜索默认值
— Nilfred

1)您关于如何构建软件包的“一般帮助”不完整,不适当且编写不当,请在下次尝试更加具体;您的上一次编辑至少使答案为主题(+1),但是您可能在“允许新选项”之后停下来,而没有大量复制粘贴2)我很久以前做过家庭作业,尤其是已经发布了类似的解决方法,仍然存在的问题是:它仍然不允许指定任意的安装选项。
— 萨斯坦宁2011年

@jetxee 1)您应该在编辑device.c之后构建,然后停在那里,还有另一个问题悬而未决:如何构建?2)我发现自己的回答对我的特定问题很有用,因此我向社区提供了社区给我的东西:我按照您的指示指定了任意安装选项(绕行了弯路)3)您编辑过多:我的编译时间是比pbuilder少得多,安装的垃圾也少于pbuilder。4)我同意删除share your changes包含cp -p备用行的部分:如果有apt-get source任何失败,都将撤消。
— 尼尔弗雷德(Nilfred)2011年

同意。现在,这是一个写得很好的答案。谢谢。
— 萨斯坦宁2011年

0

我在Lucid上找到了可执行文件问题的解决方法(在Maverick上不需要)。较新的版本udisks 1.0.1+git20100614不能使NTFS分区上的所有文件都可执行。这解决了我关于可执行文件的特殊问题,但是仍然不允许指定任意的安装选项。

以下是我如何构建反向移植udisks程序包的分步说明。

将目录更改为要下载源软件包并下载它们的位置:

wget https://launchpad.net/ubuntu/maverick/+source/udisks/1.0.1+git20100614-1/+files/udisks_1.0.1+git20100614.orig.tar.gz
wget https://launchpad.net/ubuntu/maverick/+source/udisks/1.0.1+git20100614-1/+files/udisks_1.0.1+git20100614-1.debian.tar.gz 
wget https://launchpad.net/ubuntu/maverick/+source/udisks/1.0.1+git20100614-1/+files/udisks_1.0.1+git20100614-1.dsc 

为了建立更新,udisks我使用了pbuilder:

sudo aptitude install pbuilder
sudo pbuilder create
sudo pbuilder --update
sudo pbuilder --build udisks_1.0.1+git20100614-1.dsc 

这可能需要一些时间,但对我有用。现在,您可以安装新构建的软件包:

cd /var/cache/pbuilder/result/
ls *.deb
sudo dpkg -i udisks_1.0.1+git20100614-1_amd64.deb

此软件包应优先于distribution(lucid)软件包:

$ apt-cache policy udisks
udisks:
  Installed: 1.0.1+git20100614-1
  Candidate: 1.0.1+git20100614-1
  Version table:
 *** 1.0.1+git20100614-1 0
        100 /var/lib/dpkg/status
     1.0.1-1ubuntu1 0
        500 http://it.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
     1.0.1-1build1 0
        500 http://it.archive.ubuntu.com/ubuntu/ lucid/main Packages

现在,自动安装的NTFS分区上的常规文件不再可执行。我希望此修复程序可以在正式的Lucid更新中找到应用。


在我的Ubuntu 16.04中,默认情况下,NTFS分区中的文件仍可执行。我必须在fstab中配置驱动器以对其进行修复。
— Stefan Monov 2016年

-2

这是因为NTFS驱动器不是为Linux制造的,而是为Windows制造的,并且Windows默认使所有文件都可执行。

将它们默认设置为不可执行的唯一方法是编辑每个驱动器的fstab,或将它们切换到fat32。


这回答了错误的问题。NTFS分区在Linux中工作良好,并且可以使用fmask = 0111选项在所有文件上禁用可执行位。问题是如何配置现代的Ubuntu 自动挂载机制?
— 萨斯坦宁

您不能,请阅读第二段。您必须将所有这些驱动器都切换到fat32,以使其在默认情况下兼容且不可执行。
— dkuntz2 2010年

选择FAT32或NTFS与设置fmask无关。
— 瑞安·汤普森

但是默认情况下,fat32驱动器上的文件设置为不可执行。因此,一种解决方案。
— dkuntz2 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.