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


17

Ho molte unità FAT32 che vorrei montare su Ubuntu in modo tale che abbiano la modalità di autorizzazione 700 per le directory e 600 per tutti gli altri file. Per impostazione predefinita, hanno 755 per tutti i file, il che non è particolarmente utile poiché quasi nessuna directory non dovrebbe essere eseguibile e rovina i repository di controllo versione ospitati sulle unità.

"Back in the day" Avrei avuto le unità elencate in / etc / fstab con l'umask / dmask che desidero e non esisteva un valore predefinito. In questi giorni, guida l'automount con i nomi dei loro volumi. Il che è fantastico, tranne ora che non ho idea di come impostare il valore predefinito.

Ho provato a cambiare la chiave gconf / system / storage / default_options / vfat / mount_options senza apparentemente effetto. Inizialmente era 077 ma l'unità montata rifletteva un valore predefinito di 022; la modifica e il reinserimento delle unità ha comportato che i file avessero ancora bit di autorizzazione di 755.


eh. pensavo che il tuo nome utente fosse familiare. uso mutageno da anni. benvenuto in Super User. :)
Quack Quixote

Inoltre, quale versione di Ubuntu stai usando? Suppongo Karmic, ma potresti parlare del Lucid RC, o anche di qualcosa di prima.
Quack Quixote

Chiarito nel titolo. Speravo non avesse importanza, dato che ho alcune installazioni più vecchie, e qualcosa come il montaggio non dovrebbe cambiare ogni sei mesi.

sfortunatamente il materiale HAL ha subito parecchi cambiamenti nelle ultime versioni. 9.04 e precedenti sono probabilmente gli stessi; alcune soluzioni potrebbero applicarsi a tutti; ma 9.10 utilizza DeviceKit e HAL è obsoleto. non mi fido che nessuna delle cose DBus / HAL / DeviceKit rimanga stabile al momento.
Quack Quixote

1
commento da pagin : penso che il problema sia molto più fondamentale: voglio modificare il umask per il montaggio automatico indipendentemente da quale dispositivo si collega al computer. Vale a dire se un mio amico passa con la sua chiavetta USB e voglio solo copiare alcuni file da questo, voglio che vengano automaticamente trasferiti come chmod 750, non 000 o 777, 770 o altro. Dovrebbe esserci davvero un'opzione da qualche parte per configurare questo ...
Quack Quixote l'

Risposte:


7

Aggiornato
Purtroppo non ci sono mezzi integrati per farlo. Il "modo giusto", il modo supportato , sta impostando una linea / etc / fstab con le opzioni di montaggio predefinite desiderate. Ciò significa che le impostazioni predefinite devono essere impostate per dispositivo, sebbene sia possibile utilizzare l'etichetta della partizione o l'UUID per evitare di richiedere un percorso dispositivo specifico. In particolare, questo metodo sembra aver luogo prima dell'autorizzazione desktop PolicyKit.

I forum di Ubuntu, Launchpad e bugzilla di Gnome hanno molti post degli utenti che cercano la stessa funzionalità che stai cercando, sia su NTFS che su FAT32. Ubuntu 9.10 e 10.04 forniscono il montaggio automatico predefinito tramite una combinazione di DeviceKit-Disks, GVFS e Nautilus.

DeviceKit-disks fornisce un'interfaccia FilesystemMount il cui argomento opzioni sembra essere il modo corretto di configurare le opzioni di montaggio. Ma GVFS / Nautilus non sembra fornire alcun mezzo, tramite l'interfaccia utente o un file di configurazione, per specificare questa opzione quando si monta automaticamente una chiave USB.

Esistono un paio di soluzioni alternative:

  • Questo bug del Launchpad contiene una patch fornita dall'utente che modifica le impostazioni predefinite di DeviceKit-Disks in un pacchetto di devicekit-disks personalizzato .

    Tra i lati positivi, questo potrebbe essere il modo più semplice per impostare le impostazioni predefinite preferite per tutti i dispositivi. Lo svantaggio è che dovrai riprovare di nuovo quando il pacchetto viene aggiornato.

  • Un post nei forum di Ubuntu propone uno script di soluzione alternativa specifico 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
    

    Anche questo non è ottimale, dal momento che dovresti tenerlo aggiornato con dispositivi specifici. Ma evita il problema di autorizzazione che può avere la soluzione fstab supportata .


commento di Rndmerle : Come nota a margine , su Ubuntu Lucid (10.4) il comando devkit-disks è stato sostituito da / usr / bin / udisks
quack quixote l'

Questa soluzione alternativa con udisks --unmount ecc. Funziona solo per umask e dmask. Altre opzioni non sono consentite come puoi immaginare dalla patch che hai collegato.
user39559

1

Ecco la mia linea fstab per far montare la mia chiavetta USB con permessi adatti per una chiave ssh privata (fmask = 177). Prove ed errori mi hanno informato che dovevo aggiungere l'opzione "utente" per far funzionare l'automount.

/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 montaggio che era precedentemente automatico:

mkdir /media/TIM_ABELL

il uuid del disco può essere trovato collegando il disco ed eseguendolo

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

che ti permetterà di ottenere il punto di montaggio -> dispositivo -> mappatura uuid


1
invece di usare i percorsi completi / dev / disk / by-uuid / FOO o / dev / disk / by-label / FOO è possibile utilizzare la sintassi del collegamento UUID=FOOo LABEL=FOO.
Quack Quixote,

0

Hai davvero provato il vecchio metodo / etc / fstab? Per me funziona. Ubuntu utilizza fstab, indipendentemente dall'automounter HAL.


2
Cosa metto in / etc / fstab per far montare tutte le unità FAT in quel modo? Il mio punto non è che "potrei farlo con fstab" (non posso), è "questo non è accaduto sotto il modello fstab perché non ha montato nulla a meno che non glielo avessi detto".

0

Ho fatto alcuni script di bash e sono uscito con questa versione migliorata dello script di soluzione alternativa pubblicata 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) che sono già montati e li rimonta usando mount_options (nel mio caso, lasciali usare il set di caratteri iso-8859-1 per la compatibilità con altri sistemi operativi limitati)


3
Cosa succede se si collega un USB ext4? Applicherà maschere e altre opzioni che desideri (e che abbia senso) solo per FAT?
user39559

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.