我使用自动挂载外部 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。