web-dev-qa-db-ja.com

自動マウントされたNTFSパーティションのデフォルトのマウントオプション(「noexec」と「fmask = 0111」を追加する方法)

外部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?)を使用すると仮定しますが、デフォルトのマウントオプションをどのように変更できるかは実際にはわかりません。 /system/storage/default_options/ntfs/mount_optionsのGconf設定は効果がありません。

それで、どのようにしてfmask=0111をすべてのNTFSパーティションのデフォルトの自動マウントオプションにするのでしょうか? (現在の自動マウントメカニズムの仕組み、構成方法を誰かが説明してくれた場合もありがたいです、デフォルトのマウントオプションがハードコードされている場合、それらを変更するには再コンパイルする必要があります)。

/etc/fstabに行を追加したり、手動でマウントしたりできることはわかっていますが、これは1)使用するすべての外部ドライブの/etc/fstabを編集したくないので、2)fstabレコードですドライブが存在しない場合でも、Nautilusの[場所]ペインに表示されます。問題はdefaultsを変更する方法です。

更新: udisks 1.0.1+git20100614 以降をインストールすると、NTFSのより適切なデフォルトが得られますが、残っている問題は、ユーザーが任意のマウントオプションを指定する方法です。

9
sastanin

デフォルトのマウントオプションがハードコードされている場合、それらを変更するには再コンパイルする必要があります

ファイルを編集します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
Nilfred

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アップデートに反映されることを願っています。

0
sastanin