Come impostare le autorizzazioni predefinite per le unità FAT automatizzate in Ubuntu 9.10?

Ho molte unità FAT32 che vorrei montare in Ubuntu in modo che possano avere il permesso 700 per le directory e 600 per tutti gli altri file. Per impostazione predefinita, esse dispongono di 755 per tutti i file, che non è particolarmente utile poiché quasi nessuna directory non deve essere eseguibile e avvolge i repos di controllo di versione ospitati sulle unità.

"Back in the day" avrei avuto le unità elencate in / etc / fstab con l'umask / dmask che voglio e non c'era come predefinito. In questi giorni, driveountount sotto i loro nomi di volume. Quello è grande, ad exception di ora, non ho idea di come impostare l'impostazione predefinita.

Ho provato a cambiare la chiave / system / storage / default_options / vfat / mount_options gconf senza alcun effetto apparentemente. Inizialmente era 077, ma l'unità montata rifletteva un default di 022; cambiandolo e reinserendo le unità ha provocato i file che hanno ancora bits di authorization di 755.

aggiornato
Purtroppo non ci sono mezzi incorporati per farlo. Il "modo giusto", il modo supportto , sta impostando una linea / etc / fstab con le opzioni di assembly predefinite che si desidera. Ciò significa che i valori predefiniti devono essere impostati per dispositivo, anche se è ansible utilizzare l'etichetta di partizione o UUID per evitare di richiedere un path di periferica specifico. In particolare, questo metodo sembra aver luogo prima dell'authorization desktop di PolicyKit.

I forum di Ubuntu, Launchpad e Bugzilla di Gnome hanno molti messaggi da utenti che cercano la stessa funzionalità che stai cercando, sia su NTFS che FAT32. Ubuntu 9.10 e 10.04 forniscono l'automounting predefinito tramite una combinazione di Dischi DeviceKit, GVFS e Nautilus.

Dischi DeviceKit fornisce un'interface FilesystemMount la cui argomentazione delle opzioni sembra essere il modo giusto per configurare le opzioni di assembly. Ma GVFS / Nautilus non sembra fornire alcun mezzo, tramite l'UI o un file di configuration, per specificare questa opzione quando si utilizza una chiave USB.

Ci sono un paio di soluzioni alternative:

  • Questo bug di Launchpad contiene una patch fornita dall'utente che modifica i valori predefiniti di DisksKit- Disks in un pacchetto di dischi hardware-based personalizzati.

    Sul lato positivo, questo può essere il modo più semplice per impostare le impostazioni predefinite preferite per tutti i dispositivi. Lo svantaggio è che dovrai ripetere di nuovo quando il pacchetto viene aggiornato.

  • Un messaggio di Ubuntu Forums propone uno script di soluzioni specifiche per il dispositivo:

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

    Questo è anche non ottimale, in quanto dovresti mantenerlo aggiornato con dispositivi specifici. Ma evita il problema dell'authorization che la soluzione fstab supportta può avere.

Ecco la mia linea fstab per get il mio stick usb al mount con autorizzazioni adatte a una chiave privata ssh (fmask = 177). Prova e errore mi ha informato che wherevo aggiungere l'opzione 'utente' per get l'automount per lavorare.

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

Ho anche dovuto creare il punto di assembly che era precedentemente automatico:

 mkdir /media/TIM_ABELL 

il disco uuid può essere trovato collegando il disco e l'esecuzione

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

che ti permetterà di get il punto di assembly -> dispositivo -> mapping uuid

Hai davvero provato il vecchio metodo / etc / fstab? Per me funziona. Ubuntu usa fstab, non import l'automounter HAL.

Ho eseguito alcuni script di bash e sono venuto fuori con questa versione migliorata dello script di soluzioni di lavoro che è pubblicato sopra:

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

Trova tutti i dispositivi collegati tramite USB (si spera tutti i pendrive) già montati e li rimonta utilizzando mount_options (nel mio caso, lasciali utilizzare charset iso-8859-1 per la compatibilità con altri OS limitati)