私はUbuntuにマウントしたい多くのFAT32ドライブを持っているので、ディレクトリには700、その他すべてのファイルには600のアクセス許可モードがあります。デフォルトでは、すべてのファイルに対して755があり、実行可能な非ディレクトリはほとんどないため、特に有用ではありません。また、ドライブにホストされているバージョン管理リポジトリを台無しにします。
「昔」私が望むumask/dmaskでドライブを/ etc/fstabにリストしていて、デフォルトのようなものはなかったでしょう。最近では、ドライブはボリューム名で自動マウントされます。これはすばらしいことですが、今はデフォルトの設定方法がわかりません。
/ system/storage/default_options/vfat/mount_options gconfキーを変更しても、効果はありません。最初は077でしたが、マウントされたドライブはデフォルトの022を反映していました。それを変更してドライブを再挿入すると、ファイルのアクセス権ビットは755のままになります。
更新
残念ながら、これを行うための組み込みの手段はありません。 「正しい方法」 サポートされている方法 は、/ etc/fstab行にデフォルトのマウントオプションを設定します。つまり、デフォルトをデバイスごとに設定する必要がありますが、パーティションラベルまたはUUIDを使用して、特定のデバイスパスを必要としないようにすることができます。特に、このメソッドはPolicyKitデスクトップ認証の前に行われるようです。
Ubuntuフォーラム Launchpad および Gnome's bugzilla には、NTFSとFAT32の両方で、同じ機能を探しているユーザーからの投稿が多数あります。 Ubuntu 9.10および10.04は、DeviceKit-Disks、GVFS、およびNautilusの組み合わせによるデフォルトの自動マウントを提供します。
DeviceKit-disksは FilesystemMount インターフェースを提供し、そのoptions引数はproperの方法であるように見えますマウントオプション。しかし、GVFS/Nautilusは、UIまたは構成ファイルを介して、USBキーを自動マウントするときにこのオプションを指定する手段を提供していないようです。
いくつかの回避策があります。
このランチパッドのバグ には ユーザー提供のパッチ が含まれ、カスタムビルドされたdevicekit-disksのDeviceKit-Disksデフォルトを変更しますパッケージ。
プラスの面では、これがすべてのデバイスに優先するデフォルトを設定する最も簡単な方法かもしれません。欠点は、パッケージが更新されたときに再度パッチを適用する必要があることです。
Ubuntuフォーラムの1つの投稿は、デバイス固有の 回避策スクリプト を提案しています:
#!/bin/bash
devkit-disks --unmount /dev/disk/by-uuid/0D3594370C618A2A
devkit-disks --mount-options "dmask=000" --mount /dev/disk/by-uuid/0D3594370C618A2A
特定のデバイスでこれを更新し続ける必要があるため、これも最適ではありません。ただし、サポートされているfstabソリューションで発生する可能性がある認証の問題は回避されます。
私のUSBスティックをプライベートsshキー(fmask = 177)に適した権限でマウントするためのfstab行は次のとおりです。試行錯誤の結果、自動マウントを機能させるには「ユーザー」オプションを追加する必要があることがわかりました。
/dev/disk/by-uuid/C2F8-E4F2 /media/TIM_ABELL vfat rw,user,nosuid,nodev,dmask=0077,flush,fmask=177
以前は自動であったマウントポイントも作成する必要がありました。
mkdir /media/TIM_ABELL
ディスクuuidは、ディスクを接続して実行することで見つけることができます
mount
ls -l /dev/disk/by-uuid/
マウントポイント->デバイス-> uuidマッピングを取得できます
本当に、古い/ etc/fstabメソッドを実際に試しましたか?わたしにはできる。 Ubuntuは、HALオートマウンターに関係なく、fstabを使用します。
私はいくつかのbashスクリプトを作成し、上記の投稿された回避策スクリプトのこの改良版を思いつきました。
#!/bin/bash
dev_path="/dev/disk/by-id"
usb_drives=$(find $dev_path -name "usb*")
mount_options="utf8=0,codepage=850,iocharset=iso8859-1"
for dev in $usb_drives ; do
if ( devkit-disks --show-info $dev | \
grep "is mounted:" | grep -q 1 ) ; then
devkit-disks --unmount $dev
devkit-disks --mount $dev \
--mount-options $mount_options
fi
done
すでにマウントされているUSBで接続されているすべてのデバイス(できればすべてのペンドライブ)を検出し、mount_optionsを使用して再マウントします(私の場合、他の制限されたOSとの互換性のためにiso-8859-1文字セットを使用します)