Festlegen von Standardberechtigungen für automatisch bereitgestellte FAT-Laufwerke in Ubuntu 9.10

26231

Ich habe viele FAT32-Laufwerke, die ich gerne in Ubuntu mounten würde, so dass sie den Berechtigungsmodus 700 für Verzeichnisse und 600 für alle anderen Dateien haben. Standardmäßig haben sie 755 für alle Dateien, was nicht besonders nützlich ist, da fast keine Nichtverzeichnisse ausführbar sein sollten und es die auf den Laufwerken gehosteten Versionskontroll-Repos verschraubt.

"Zurück in den Tag" Ich hätte die Laufwerke in / etc / fstab mit der umask / dmask aufgelistet, die ich möchte, und es gab keine Standardeinstellung. In diesen Tagen werden Automount-Laufwerke unter ihren Volume-Namen ausgeführt. Was großartig ist, außer jetzt habe ich keine Ahnung, wie ich den Standard einstellen soll.

Ich habe versucht, den gconf-Schlüssel / system / storage / default_options / vfat / mount_options ohne offensichtlichen Effekt zu ändern. Anfangs war es 077, aber das gemountete Laufwerk entspricht einem Standardwert von 022. Das Ändern und erneute Einfügen der Laufwerke führte dazu, dass die Dateien immer noch ein Erlaubnisbit von 755 hatten.

16
huh Ich dachte, dein Benutzername kam mir bekannt vor. Ich benutze Mutagen seit Jahren. Willkommen bei Super User. :) quack quixote vor 14 Jahren 0
Welche Version von Ubuntu verwendest du auch? Ich würde von Karmic ausgehen, aber Sie sprechen vielleicht über den Lucid RC oder etwas früher. quack quixote vor 14 Jahren 0
Im Titel erläutert. Ich hatte gehofft, dass es keine Rolle spielt, da ich einige ältere Installationen habe und etwas wie das Montieren sich nicht alle sechs Monate ändern sollte. vor 14 Jahren 0
Leider hat das HAL-Zeug in den letzten Versionen einige Änderungen erfahren. 9.04 und vorige sind wahrscheinlich gleich; Einige Lösungen können für alle gelten. 9.10 verwendet DeviceKit und die HAL ist veraltet. Ich vertraue keinem DBus / HAL / DeviceKit-Zeug, um im Moment stabil zu bleiben. quack quixote vor 14 Jahren 0
Kommentar von [pagin] (http://superuser.com/users/37982/pagin): Ich denke, das Problem ist viel grundlegender: Ich möchte die umask für das Automounting ändern, unabhängig davon, welches Gerät an den Computer angeschlossen ist. Wenn also ein Freund von mir mit seinem USB-Stick vorbeischaut und ich einfach eine Datei von diesem kopieren möchte, möchte ich, dass sie automatisch als chmod 750 übertragen wird, nicht als 000 oder 777, 770 oder was auch immer. Es sollte wirklich irgendwo eine Option geben, um dies zu konfigurieren ... quack quixote vor 14 Jahren 1

5 Antworten auf die Frage

7
quack quixote

Updated
Unfortunately there is no built-in means to do this. The "right way", the supported way, is setting an /etc/fstab line with the default mount options you want. This means your defaults must be set per-device, though you can use the partition label or UUID to avoid requiring a specific device path. In particular, this method seems to take place before the PolicyKit desktop authorization.

The Ubuntu forums, Launchpad and Gnome's bugzilla have many posts from users looking for the same functionality you're looking for, on both NTFS and FAT32. Ubuntu 9.10 and 10.04 provide the default automounting via a combination of DeviceKit-Disks, GVFS, and Nautilus.

DeviceKit-disks provides a FilesystemMount interface whose options argument appears to be the proper way to configure your mount options. But GVFS/Nautilus does not appear to provide any means, via the UI or a configuration file, to specify this option when automounting a USB key.

There are a couple of workarounds:

  • This Launchpad bug contains a user-provided patch that alters the DeviceKit-Disks defaults in a custom-built devicekit-disks package.

    On the plus side, this may be the easiest way to set your preferred defaults for all devices. The disadvantage is that you'll need to repatch again when the package is updated.

  • One Ubuntu Forums post proposes a device-specific workaround script:

    #!/bin/bash devkit-disks --unmount /dev/disk/by-uuid/0D3594370C618A2A devkit-disks --mount-options "dmask=000" --mount /dev/disk/by-uuid/0D3594370C618A2A 

    This is also sub-optimal, since you'd have to keep this updated with specific devices. But it does avoid the authorization problem that the supported fstab solution can have.

Kommentar von [Rndmerle] (http://superuser.com/users/35531/rndmerle): Als Nebenbemerkung wurde auf Ubuntu Lucid (10.4) der Befehl devkit-disks durch / usr / bin / udisks ersetzt quack quixote vor 14 Jahren 0
Diese Problemumgehung mit udisks --unmount usw. funktioniert nur für umask und dmask. Andere Optionen sind nicht zulässig, da Sie anhand des Patches, den Sie verlinkt haben, raten können. user39559 vor 14 Jahren 0
1
Tim Abell

Here's my fstab line for getting my usb stick to mount with permissions suitable for a private ssh key (fmask=177). Trial and error informed me I had to add the 'user' option to get automount to work.

/dev/disk/by-uuid/C2F8-E4F2 /media/TIM_ABELL vfat rw,user,nosuid,nodev,dmask=0077,flush,fmask=177 

I also had to create the mount point which was previously automatic:

mkdir /media/TIM_ABELL 

the disk uuid can be found by plugging in the disk and running

mount ls -l /dev/disk/by-uuid/ 

which will allow you to get the mount point -> device -> uuid mapping

Anstatt die vollständigen Pfade * / dev / disk / by-uuid / FOO * oder * / dev / disk / by-label / FOO * zu verwenden, können Sie die Abkürzungssyntax `UUID = FOO` oder` LABEL = FOO` verwenden. quack quixote vor 14 Jahren 1
0
Ivan Petrushev

Haben Sie wirklich die alte / etc / fstab-Methode ausprobiert? Für mich geht das. Ubuntu verwendet fstab, unabhängig vom HAL-Automounter.

Was muss ich in / etc / fstab eingeben, um alle FAT-Laufwerke so zu mounten? Mein Punkt ist nicht "Ich könnte das mit fstab tun" (ich kann nicht), es ist "dies geschah nicht unter dem fstab-Modell, weil es nichts brachte, es sei denn, ich habe es gesagt". vor 14 Jahren 2
0
Guido I

Ich habe ein paar Bash-Skripte erstellt und diese verbesserte Version des oben beschriebenen Workaround-Skripts herausgebracht:

#!/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 

Es findet alle Geräte, die über USB (hoffentlich alle Pendelaufwerke) verbunden sind, die bereits eingebunden sind, und stellt sie mithilfe von mount_options bereit (in meinem Fall sollte der Zeichensatz iso-8859-1 verwendet werden, um die Kompatibilität mit anderen eingeschränkten Betriebssystemen zu gewährleisten).

Was passiert, wenn Sie ein ext4 USB anschließen? Wendet es Masken und andere Optionen an, die Sie nur für FAT wollen (und nur Sinn machen)? user39559 vor 14 Jahren 3
0
JRT

Ich habe gerade meine Lösung dazu auf einer anderen Frage veröffentlicht: https://askubuntu.com/questions/17540/how-do-i-set-executable-permissions-on-removable-drive/17550#17550