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

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

我使用自动挂载外部 USB 设备,它按预期工作,只是 NTFS 分区在挂载时启用了可执行性标志。例如:

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

所有常规文件都-rwxrwxrwx位于此分区上。我对 s 不满意x。我知道如果我跳过该选项,我可以按我想要的方式安装它fmask=0111

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

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

我知道我可以在 and/or 中手动添加一行/etc/fstab,但这不是我想要的解决方案,因为 1) 我不想编辑/etc/fstab我使用的每个外部驱动器,2) fstab 记录出现在 Nautilus 的位置窗格中,即使驱动器不存在。问题是如何更改默认值

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

答案1

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

编辑文件设备.c使用您的自定义默认值:

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

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

构建(请参阅其他答案构建器方式):

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

答案2

我找到了解决 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

此软件包应优先于分发版 ( 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 更新。

答案3

这是因为 NTFS 驱动器不是为 Linux 制作的,而是为 Windows 制作的,并且 Windows 默认使所有内容均可执行。

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

相关内容