Ubuntu 9.10で自動マウントされたFATドライブのデフォルトの権限を設定するにはどうすればよいですか?


17

UbuntuにマウントするFAT32ドライブがたくさんあるので、ディレクトリにアクセス許可モード700、他のすべてのファイルにアクセス許可モード600を設定します。デフォルトでは、すべてのファイルに755があります。これは、ディレクトリ以外はほとんど実行可能でないため、特に有用ではありません。また、ドライブでホストされているバージョン管理リポジトリを台無しにします。

「過去」では、必要なumask / dmaskを使用して/ etc / fstabにリストされているドライブがあり、デフォルトのようなものはありませんでした。最近では、ドライブはボリューム名で自動マウントされます。これは素晴らしいですが、デフォルトを設定する方法がわからないようになりました。

/ system / storage / default_options / vfat / mount_options gconfキーを変更しても、効果は明ら​​かではありません。最初は077でしたが、マウントされたドライブはデフォルトの022を反映していました。変更してドライブを再挿入すると、ファイルのアクセス許可ビットが755のままになります。


ハァッ あなたのユーザー名は馴染みがあると思いました。私は何年も変異原を使用しています。スーパーユーザーへようこそ。:)
クワックキホーテ

また、どのバージョンのubuntuを使用していますか?Karmicを想定していますが、Lucid RC、またはそれ以前のものについて話しているかもしれません。
いんちきキホーテ

タイトルを明確にしました。古いインストレーションがいくつかあるので、それが問題にならないことを望んでいました。マウントのようなものは、半年ごとに変わるべきではありません。

残念ながら、HALのものは最近のバージョンでかなりの数の変更を受けています。9.04以前はおそらく同じです。一部のソリューションはすべてに適用される場合があります。しかし、9.10はDeviceKitを使用し、HALは非推奨です。DBus / HAL / DeviceKitのものが現時点で安定しているとは信じていません。
いんちきキホーテ

1
paginからのコメント:問題ははるかに根本的だと思います:どのデバイスがコンピューターに接続されているかに関係なく、自動マウント用のumaskを変更したいです。つまり、私の友人が彼のUSBスティックで立ち寄って、このファイルからいくつかのファイルをコピーしたい場合、000または777、770などではなくchmod 750として自動的に転送されるようにします。本当に...これを設定するオプションのどこかにあるはず
キホーテいんちき

回答:


7

更新
残念ながらこれを行うには、組み込みの手段がありません。サポートされている「正しい方法」は必要なデフォルトのマウントオプションを使用して/ etc / fstab行を設定することです。つまり、デバイスごとにデフォルトを設定する必要がありますが、パーティションラベルまたはUUIDを使用して、特定のデバイスパスを必要としないようにすることができます。特に、この方法はPolicyKitデスクトップ認証の前に実行されるようです。

Ubuntuフォーラム、Launchpad、およびGnomeのbugzillaには、NTFSとFAT32の両方で、同じ機能を探しているユーザーからの多くの投稿があります。Ubuntu 9.10および10.04は、DeviceKit-Disk、GVFS、およびNautilusの組み合わせによるデフォルトの自動マウントを提供します。

DeviceKit-disksは、オプション引数がマウントオプションを設定する適切な方法であると思われるFilesystemMountインターフェイスを提供します。しかし、GVFS / Nautilusは、UIまたは設定ファイルを介して、USBキーを自動マウントするときにこのオプションを指定する手段を提供していないようです。

いくつかの回避策があります。

  • このLaunchpadのバグには、カスタムビルドされた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ソリューションで発生する可能性がある認証の問題は回避されます。


コメントRndmerle:Ubuntuの明晰にサイドノートとして、(10.4)、開発キット、ディスクコマンドは、/ usr / binに/ udisksに置き換えられました
いんちきキホーテ

udisks --unmountなどを使用したこの回避策は、umaskとdmaskでのみ機能します。リンクしたパッチから推測できるため、他のオプションは許可されません。
user39559

1

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マッピングを取得できます


1
フルパス/ dev / disk / by-uuid / FOOまたは/ dev / disk / by-label / FOOを使用する代わりに、ショートカット構文UUID=FOOまたはを使用できますLABEL=FOO
いんちきのキホーテ

0

古い/ etc / fstabメソッドを実際に試しましたか?わたしにはできる。Ubuntuは、HALオートマウンターに関係なく、fstabを使用します。


2
すべてのFATドライブをそのようにマウントするには、/ etc / fstabに何を入れますか?私のポイントは、「fstabでこれを行うことができた」ということではありません(できない)、「fstabモデルでは、指示がない限り何もマウントしなかったため、これは起こりませんでした」。

0

私はいくつかの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文字セットを使用します)


3
ext4 USBを接続するとどうなりますか?FATにのみ必要な(そして意味のある)マスクやその他のオプションを適用しますか?
user39559

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.