Accesso ad altri file system con NLNX

fstab u0.1

NLNX, durante il funzionamento in modalità grafica, dispone di un sistema di innesto automatico dei file system contenuti in unità di memorizzazione USB rimovibili; per i dischi ottici o per altri tipi di unità, c'è comunque qualche accorgimento che viene incontro agli utenti. Tutte le unità che si vanno a innestare, si inseriscono in una sottodirectory di /mnt/.

Innesto di altri file system

Nel file /etc/fstab di NLNX, alcune voci sono gestite in modo automatico, nel senso che tale file viene aggiornato dinamicamente, con l'inserimento o l'estrazione di unità esterne. Per tali unità, nella directory /mnt/ si creano e si eliminano automaticamente delle sottodirectory, in modo tale, per esempio, di innestare l'unità /dev/sdc2 nella directory /mnt/sdc2/.

Nel file /etc/fstab, queste voci gestite automaticamente hanno l'opzione users (al plurale), con la quale si consente a ogni utente il distacco delle unità, anche se l'innesto non è stato eseguito dallo stesso:(1)

...
/dev/sdc1  /mnt/sda   auto  users,noauto  0  0
/dev/sdc2  /mnt/sda1  auto  users,noauto  0  0
...

Come accennato, la directory /mnt/ è inizialmente vuota, mentre uno script si occupa di inserire le sottodirectory necessarie e di togliere quelle che non servono più (oltre che aggiornare il file /etc/fstab di conseguenza). Questo script viene pilotato automaticamente dal sistema uDev, che aggiorna al volo l'elenco dei file di dispositivo.

Le sottodirectory gestite automaticamente sono solo quelle che possono riferirsi a nomi di file di dispositivo di unità di memorizzazione, pertanto si possono comunque creare delle sottodirectory con nomi differenti per scopi propri, aggiornando anche il file /etc/fstab manualmente. Per esempio si potrebbe voler aggiungere la voce seguente al file:

...
192.168.1.21:/  /mnt/192.168.1.21  nfs  users,noauto  0  0
...

In tal caso andrebbe anche aggiunta la directory /mnt/192.168.1.21/, sapendo che lo script di aggiornamento di /mnt/ non la tocca, perché non corrisponde ai nomi dei file di dispositivo gestiti.

Accesso semplificato alle unità rimovibili

Per semplificare l'accesso alle unità rimovibili, in modo da non costringere gli utenti a usare i comandi mount e umount, appare un pulsantino nella barra delle applicazioni, con la lettera <d>.

bottone d

Selezionando il pulsante grafico <d>, si ottiene un menù con l'elenco delle unità rimovibili a cui si può accedere, assieme ad altre posizioni utili all'interno del file system. Eventualmente, se alcune unità risultano essere già innestate, si vedono le voci che consentirebbero di tentarne il distacco, come nell'esempio seguente dove si ipotizza che risulti già innestata un'unità nella directory /mnt/fd0/:

distaccabile

Quando si seleziona una voce per accedere a una certa unità, se necessario viene innestata, quindi viene avviato un programma per poter intervenire nel suo contenuto. Di solito si tratta di Xfe, ma in mancanza di altro, può apparire anche solo una finestra di terminale.

Logicamente, si può ottenere il distacco di una unità solo quando questa non risulta più utilizzata. In particolare, quando l'innesto è avvenuto in modo automatico e a questo è seguito l'avvio di un programma come Xfe, alla conclusione del funzionamento di tali programmi, viene tentato un distacco automatico, che nel caso di unità servo-assistite, produce poi l'espulsione del supporto di memorizzazione.

Nella maggior parte dei casi, le unità rimovibili vengono innestate automaticamente, avviando contestualmente il programma Xfe, come descritto. Eventualmente, se dopo qualche secondo dopo l'inserimento dell'unità rimovibile non si vede apparire nulla, si può utilizzare la procedura già descritta.

Accesso a unità non rimovibili

Nell'elenco descritto nella sezione precedente, si trovano anche le unità non rimovibili, ma in tal caso, allo scopo di evitare errori, per ottenere l'innesto viene richiesto di inserire la parola d'ordine dell'amministratore. Naturalmente, l'utente comune che vuole accedere ugualmente a tali dati senza avere privilegi particolari, può farlo usando i comandi consueti, pertanto si vuole solo evitare che si innestino le partizioni di un disco locale senza essere consapevoli di ciò che si sta facendo.

Questa cautela deriva dalla possibilità che un disco locale contenga un file system NTFS, per il quale non c'è la massima compatibilità e si vuole evitare che un accesso non voluto esplicitamente possa comprometterne l'integrità.

Limitazione all'accesso

Per impedire a tutti gli utenti l'accesso a certe unità, non è possibile intervenire nel file /etc/fstab, perché questo verrebbe aggiornato automaticamente, ripristinando i privilegi standard. Pertanto, è previsto un altro metodo, con cui si aggiungono dei file particolari nella directory /mnt/; file che logicamente un utente comune non possa cancellare. Si tratta di aggiungere un file vuoto con un nome corrispondente al modello seguente:

nome_dispositivo.DISABLED

Per esempio, per impedire l'accesso alle unità a dischetti tradizionali, occorre creare i file /mnt/fd0.DISABLED e /mnt/fd1.DISABLED.

La presenza di questi file fa sì che non vengano create automaticamente le directory per l'innesto di tali dispositivi, impedendo in pratica agli utenti comuni di accedervi.

La gestione di questi file va fatta, evidentemente, attraverso degli script. Attualmente, se nella directory personale di un utente, esiste il file ~/.nlnx/flags/normm (no removable media, nel momento dell'accesso attraverso la grafica, vengono creati al volo tutti i file che servono a impedire l'accesso a unità di memorizzazione esterne.(2)(3)

Accesso a risorse di rete SMB

Se presso la propria rete locale (per la quale si deve essere instradati correttamente) sono presenti degli elaboratori MS-Windows configurati in modo da condividere alcune porzioni del proprio file system, secondo i protocolli SMB, dovrebbe essere possibile accedervi attraverso lo stesso menù previsto per le unità rimovibili:

bottone d

Perché l'innesto possa avvenire, è necessaria la presenza della directory /mnt/smb/, con i permessi 07778. Una volta innestato l'albero delle risorse individuate automaticamente, il distacco avviene come per le unità rimovibili:

distaccabile


1) Originariamente si utilizzava l'opzione user, al singolare, in modo che l'utente che innestava un file system fosse l'unico (a parte root) che potesse anche eseguirne successivamente il distacco. Tuttavia, non sempre il sistema operativo si comporta conformemente e poteva succedere che tale operazione venisse autorizzata esclusivamente all'amministratore.

2) Con una gestione opportuna dei permessi, si può fare in modo che gli utenti non possano cancellare o modificare il contenuto della directory ~/.nlnx/flags/. In pratica, la configurazione predefinita di NLNX è tale per cui le directory personali degli utenti hanno i permessi 17718, pari a rwxrwx--t, appartenendo all'utente root e al gruppo privato dell'utente rispettivo. In tal modo, gli utenti non hanno la facoltà di modificare i permessi della propria directory personale e non possono cancellare file o directory che non appartengono a loro stessi. Quindi, se le directory ~/.nlnx/ e ~/.nlnx/flags/ appartengono all'utente root e non ci sono i permessi di scrittura per il gruppo e gli altri utenti, nessuno oltre a root può intervenirvi.

3) Purtroppo questo meccanismo non può essere applicato agli accessi da terminale testuale, in quanto gli script che possono essere messi in funzioni nella fase successiva all'identificazione dell'utente, operano soltanto con i privilegi dell'utente stesso; pertanto non ci sarebbe modo di creare i file /mnt/x.DISABLED.

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net