[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 190.   NTFSprogs e NTFS-3g

Attraverso il pacchetto NTFSprogs(1) è possibile creare e accedere a un file system NTFS. In particolare, con il programma ntfsmount che si avvale di FUSE (capitolo 187), è possibile innestare un tale file system per utilizzarlo in modo quasi «normale».

Notoriamente l'accesso a un file system NTFS è problematico, tanto che di solito, le funzionalità disponibili in un kernel Linux sono limitate alla lettura ed eventualmente alla sovrascrittura di file già esistenti. Con ntfsmount si superano molti di questi problemi, anche se non sempre le operazioni di accesso richieste possono essere eseguite effettivamente; ma in ogni caso, l'impossibilità di eseguire una certa operazione, non mette in crisi il sistema operativo nel suo complesso e non comporta un danneggiamento del file system NTFS coinvolto.

Eventualmente, per il solo innesto si può utilizzare un altro applicativo derivato, che offre più possibilità di accesso: NTFS-3g(2), che si utilizza attraverso il programma ntfs-3g, in modo abbastanza simile a ntfsmount.

190.1   Innesto di un file system NTFS

Se FUSE è attivo e il pacchetto NTFSprogs è installato, si può innestare un'unità di memorizzazione contenente un file system NTFS con un comando simile a questo:

ntfsmount /dev/sda1 /home/tizio/penna[Invio]

In alternativa, con NTFS-3g si può fare così:

ntfs-3g /dev/sda1 /home/tizio/penna[Invio]

In questo caso, l'utente che esegue il comando innesta il file system NTFS contenuto nell'unità corrispondente al file di dispositivo /dev/sda1, a partire dalla directory /home/tizio/penna/.

In modo analogo, l'utente root potrebbe utilizzare direttamente il comando mount; in questo caso l'innesto viene fatto utilizzando la directory /mnt/sda1/:

mount -t fuse ntfsmount#/dev/sda1 /mnt/sda1[Invio]

Oppure:

mount -t fuse ntfs-3g#/dev/sda1 /mnt/sda1[Invio]

Si può predisporre anche il file /etc/fstab in modo da facilitare l'innesto di tale file system:

...
ntfsmount#/dev/sda1  /mnt/sda1  fuse defaults,user,noauto 0 0
...

Oppure:

...
ntfs-3g#/dev/sda1  /mnt/sda1  fuse defaults,user,noauto 0 0
...

In tal caso, però, considerato che si vuole concedere l'innesto agli utenti comuni, potrebbe essere necessario offrire i permessi di scrittura a tutti gli utenti per l'accesso alla directory /mnt/sda1/.

Per staccare un file system NTFS che precedentemente è stato innestato con ntfsmount o ntfs-3g, si utilizza normalmente fusermount:

fusermount -u /home/tizio/penna[Invio]

Quando invece si tratta dell'utente root, si può utilizzare anche umount:

umount /mnt/sda1[Invio]

190.2   Opzioni

Se l'innesto del file system NTFS avviene senza indicare opzioni particolari, i file e le directory al suo interno appaiono con i soli permessi per l'accesso da parte dell'utente che lo ha eseguito. A questo proposito può essere utile inserire le opzioni fmask e dmask per togliere meno permessi rispetto a quanto avviene invece in modo predefinito.

Tabella 190.3. Alcune opzioni particolari per ntfsmount.

Opzione Descrizione
uid=n
gid=n
Queste due opzioni consentono di specificare l'utente e il gruppo (attraverso i numeri UID e GID) a cui devono figurare appartenere tutti i file e le directory contenuti nel file system.
fmask=n
dmask=n
Consentono di specificare la maschera dei permessi (da togliere), rispettivamente ai file e alle directory. Se queste opzioni non vengono usate, è come se venisse specificato fmask=0177 e dmask=0077, in modo da togliere tutti i permessi di accesso agli utenti che non sono il proprietario.

Oltre a quanto descritto a proposito dei permessi virtuali di file e directory, occorre considerare che, in modo predefinito, sono attive le opzioni default_permissions e allow_other. Tuttavia, il fatto che i permessi predefiniti non concedano l'accesso agli altri utenti, implica che, salvo indicazione diversa, solo l'utente root può eventualmente accedere in tali condizioni.

A titolo di esempio viene mostrato un estratto del file /etc/fstab, nel quale si dichiara la possibilità di innestare il file system NTFS contenuto nell'unità corrispondente al file di dispositivo /dev/hdc1:

...
ntfsmount#/dev/hdc1   /win   fuse   \
  \defaults,user,noauto,uid=0,gid=0,fmask=0111,dmask=0 0 0 ...

Oppure:

...
ntfs-3g#/dev/hdc1   /win   fuse   \
  \defaults,user,noauto,uid=0,gid=0,fmask=0111,dmask=0 0 0 ...

In questo caso, pur consentendo agli utenti comuni di eseguire l'innesto, si preferisce attribuire la proprietà di tutto all'utente root, lasciando però a chiunque la possibilità di modificare il contenuto dei dati (in quanto con l'opzione fmask si tolgono ai file solo i permessi di esecuzione, mentre con l'opzione dmask non si toglie alcunché).

Per ottenere un effetto simile attraverso la riga di comando, occorrerebbe agire così:

ntfsmount /dev/hdc /win -o uid=0,gid=0,fmask=0111,dmask=0[Invio]

Oppure:

ntfs-3g /dev/hdc /win -o uid=0,gid=0,fmask=0111,dmask=0[Invio]

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) NTFSprogs   GNU GPL

2) NTFS-3g   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome ntfsprogs_e_ntfs_3g.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!