Wie setze ich Standardberechtigungen für automatisch gemountete FAT-Laufwerke in Ubuntu 9.10?

17

Ich habe viele FAT32-Laufwerke, die ich in Ubuntu einbinden möchte, 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 Nicht-Verzeichnisse ausführbar sein sollten und es Versionskontroll-Repos vermasselt, die auf den Laufwerken gehostet werden.

"Damals" hätte ich die Laufwerke in / etc / fstab mit der von mir gewünschten umask / dmask aufgelistet, und es gab keine Standardeinstellung. Heutzutage werden Laufwerke automatisch unter ihren Datenträgernamen aktiviert. Welches ist toll, außer jetzt habe ich keine Ahnung, wie man die Standardeinstellungen setzt.

Ich habe versucht, den / system / storage / default_options / vfat / mount_options gconf-Schlüssel ohne anscheinenden Effekt zu ändern. Es war anfangs 077, aber das gemountete Laufwerk wies den Standardwert 022 auf. Das Ändern und erneutes Einfügen der Laufwerke führte dazu, dass die Dateien immer noch die Berechtigungsbits 755 hatten.


quelle
huh. Ich dachte, Ihr Benutzername kommt mir bekannt vor. Ich benutze Mutagen seit Jahren. Willkommen bei Super User. :)
Quack Quixote
Welche Ubuntu-Version verwenden Sie? Ich würde annehmen, dass Karmic, aber Sie könnten über die Lucid RC sprechen, oder sogar etwas früher.
Quack Quijote
Im Titel geklärt. Ich hatte gehofft, es würde keine Rolle spielen, da ich einige ältere Installationen besitze und so etwas wie die Montage nicht alle sechs Monate geändert werden sollte.
Leider hat sich das HAL-Zeug in den letzten Versionen ziemlich verändert. 9.04 und früher sind wahrscheinlich gleich; Einige Lösungen können für alle gelten. 9.10 verwendet jedoch DeviceKit und HAL ist veraltet. Ich vertraue keinem der DBus / HAL / DeviceKit-Dinge, um im Moment stabil zu bleiben.
Quack Quijote
1
Kommentar von Pagin : Ich denke, das Problem ist viel grundlegender: Ich möchte die umask für die automatische Bereitstellung ändern, unabhängig davon, welches Gerät mit dem Computer verbunden ist. Dh wenn ein Freund von mir mit seinem USB-Stick vorbeischaut und ich nur eine Datei von dieser kopieren möchte, möchte ich, dass sie automatisch als chmod 750, nicht 000 oder 777, 770 oder was auch immer übertragen werden. Es sollte wirklich irgendwo eine Option geben, um dies zu konfigurieren ...
quack quixote

Antworten:

7

Aktualisiert
Leider gibt es keine eingebauten Mittel, um dies zu tun. Der "richtige Weg", der unterstützte Weg , ist das Setzen einer / etc / fstab- Zeile mit den gewünschten Standard-Mount-Optionen. Dies bedeutet, dass die Standardeinstellungen für jedes Gerät festgelegt werden müssen. Sie können jedoch die Partitionsbezeichnung oder die UUID verwenden, um zu vermeiden, dass ein bestimmter Gerätepfad erforderlich ist. Insbesondere scheint diese Methode vor der PolicyKit-Desktopautorisierung zu erfolgen.

In den Ubuntu-Foren, im Launchpad und in Gnomes Bugzilla gibt es viele Posts von Benutzern, die auf NTFS und FAT32 nach der gleichen Funktionalität suchen, die Sie suchen. Ubuntu 9.10 und 10.04 bieten die standardmäßige automatische Bereitstellung über eine Kombination aus DeviceKit-Disks, GVFS und Nautilus.

DeviceKit-disks bietet eine FilesystemMount- Schnittstelle, deren options- Argument die richtige Methode zur Konfiguration Ihrer Mount-Optionen zu sein scheint . GVFS / Nautilus scheint jedoch keine Möglichkeit zu bieten, über die Benutzeroberfläche oder eine Konfigurationsdatei diese Option beim automatischen Einbinden eines USB-Sticks anzugeben.

Es gibt einige Problemumgehungen:

  • Dieser Launchpad-Fehler enthält einen vom Benutzer bereitgestellten Patch , der die DeviceKit-Disks- Standardeinstellungen in einem benutzerdefinierten DeviceKit-Disks - Paket ändert .

    Auf der positiven Seite ist dies möglicherweise die einfachste Möglichkeit, Ihre bevorzugten Standardeinstellungen für alle Geräte festzulegen. Der Nachteil ist, dass Sie den Patch erneut ausführen müssen, wenn das Paket aktualisiert wird.

  • In einem Ubuntu-Forenbeitrag wird ein gerätespezifisches Problemumgehungsskript vorgeschlagen :

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

    Dies ist auch nicht optimal, da Sie dies mit bestimmten Geräten aktualisieren müssen. Es wird jedoch das Autorisierungsproblem vermieden, das bei der unterstützten fstab- Lösung auftreten kann.

Quacksalber
quelle
Kommentar von Rndmerle : Als Randnotiz wurde unter Ubuntu Lucid (10.4) der Befehl devkit-disks
quack quixote
Diese Problemumgehung mit udisks --unmount usw. funktioniert nur für umask und dmask. Andere Optionen sind nicht zulässig, wie Sie anhand des von Ihnen verknüpften Patches erraten können.
user39559
1

Hier ist meine fstab-Zeile, damit mein USB-Stick mit den für einen privaten SSH-Schlüssel geeigneten Berechtigungen gemountet wird (fmask = 177). Versuch und Irrtum informierten mich, dass ich die 'Benutzer'-Option hinzufügen musste, um automount zum Laufen zu bringen.

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

Ich musste auch den zuvor automatischen Einhängepunkt erstellen:

mkdir /media/TIM_ABELL

Die Festplatten-UUID kann gefunden werden, indem Sie die Festplatte einstecken und ausführen

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

Hiermit können Sie den Einhängepunkt -> Gerät -> uuid-Zuordnung abrufen

Tim Abell
quelle
1
Anstatt die vollständigen Pfade / dev / disk / by-uuid / FOO oder / dev / disk / by-label / FOO zu verwenden , können Sie die Shortcut-Syntax UUID=FOOoder verwenden LABEL=FOO.
Quack Quijote
0

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

Ivan Petrushev
quelle
2
Was muss ich in / etc / fstab eintragen, damit alle FAT-Laufwerke so gemountet werden? Mein Punkt ist nicht "Ich könnte das mit fstab machen" (ich kann nicht), es ist "das ist nicht unter dem fstab-Modell passiert, weil es nichts gemountet hat, außer ich habe es angewiesen".
0

Ich habe ein paar Bash-Skripte erstellt und diese verbesserte Version des oben genannten 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 per USB verbundenen Geräte (hoffentlich alle Pendrives), die bereits gemountet sind, und mountet sie mithilfe von mount_options erneut (in meinem Fall sollten sie den Zeichensatz iso-8859-1 verwenden, um mit anderen eingeschränkten Betriebssystemen kompatibel zu sein).

Guido I.
quelle
3
Was passiert, wenn Sie einen ext4 USB anschließen? Wendet es Masken und andere Optionen an, die Sie nur für FAT möchten (und die nur Sinn machen)?
user39559