Comprensione dell'opzione di montaggio nodev e del suo utilizzo con unità flash USB


10

mount (8) Pagina del manuale di OS X descrive l' nodevopzione:

Non interpretare i caratteri o bloccare dispositivi speciali sul file system. Questa opzione è utile per un server che dispone di file system contenenti dispositivi speciali per architetture diverse dalla propria.

Solo questo, non capisco del tutto ... 

... per me, la parte più importante di questa domanda - che può aiutarmi a capire l'opzione - è:

Perché le unità flash USB sono montate con l'opzione nodev?

Esempio:

sh-3.2$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk0s2 on /Volumes/swap (hfs, local, journaled)
/dev/disk0s4 on /Volumes/spare (hfs, local, journaled)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
localhost:/Eiu9XWYlwq4E8x9l_bQTiX on /Volumes/MobileBackups (mtmfs, nosuid, read-only, nobrowse)
/dev/disk3 on /Volumes/gjp22 (zfs, local, journaled, noatime)
/dev/disk3s1 on /opt (zfs, local, journaled, noatime)
/dev/disk6 on /Volumes/zhandy (zfs, local, journaled, noatime)
/dev/disk8s1 on /Volumes/experiment (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk10 on /Volumes/tall (zfs, local, journaled, noatime)
/dev/disk11s2 on /Volumes/LaCie Little Big Disk (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk12 on /Volumes/twoz (zfs, local, journaled, noatime)
Wuala on /Volumes/WualaDrive (osxfusefs, local, nodev, nosuid, synchronous, mounted by gjp22)
/dev/disk14s2 on /Volumes/Time Machine Backups (hfs, local, nodev, nosuid, journaled)

In questo esempio, i quattro volumi con nodevsono:

  1. esperimento - su un'unità flash USB
  2. LaCie Little Big Disk : su un disco rigido su FireWire 400, questo volume include una Time MachineBackups.backupdb
  3. Wuala - l'integrazione del file system utilizza FUSE per OS X
  4. Backup di Time Machine

Parlando liberamente, posso capire che 2, 3 e 4 sono speciali. Però:

  • Non riesco a capire la rilevanza di nodevun'unità flash USB.

Altre referenze

Montaggio automatico dei dischi USB (come funziona) - Unix e Linux

sfondo

Volendo capire perché Time Machine in Lion e Mountain Lion non possono eseguire il backup da unità flash USB. Ma questa domanda riguarda più in generale l' nodevopzione.

Risposte:


17

L' nodevopzione dice al sistema di non consentire la creazione e l'accesso ai nodi del dispositivo , il tipo di file speciali presenti /dev.

Ad esempio, /dev/disk0ti dà accesso diretto a tutti i dati memorizzati sul primo disco senza dover passare attraverso i livelli più alti come il filesystem o il codice di controllo delle autorizzazioni - l' unica autorizzazione verificata è se ti è permesso aprire quel nodo specifico del dispositivo per leggere o scrivere.

Ciò significa che se /dev/disk0reso leggibile in tutto il mondo, qualsiasi utente potrebbe facilmente leggere i file di qualsiasi altro utente sullo stesso disco (se non fossero crittografati), semplicemente leggendo da /dev/sda.

A seconda del sistema operativo, /devin genere avrà molti altri tipi di nodi dispositivo, incluso il /dev/memquale dà accesso all'intera memoria (fisica e / o virtuale) del sistema, sebbene non con i sistemi che eseguono un kernel compilato con CONFIG_STRICT_DEVMEM(tranne root ).

Per questo motivo, solo root è in genere autorizzato a creare nodi dispositivo (per altri utenti, mknodverrà restituito "Operazione non consentita") e tutti i nodi dispositivo esistenti vengono conservati in un'unica posizione ( /dev) con autorizzazioni di file rigorose che non forniscono agli utenti normali accesso in lettura o scrittura. (Con alcune eccezioni.) Tuttavia, nei giorni nostri, chiunque potrebbe facilmente aggirare la restrizione solo root accedendo a un altro computer a cui ha già accesso root, utilizzandolo per creare alcuni nodi di dispositivo su un'unità USB, impostando autorizzazioni molto aperte, e collegando quell'unità al tuo computer.

Questo è ciò che nodevimpedisce l' opzione - anche se qualcuno crea un nodo dispositivo leggibile / scrivibile dal mondo sulla propria unità, il sistema operativo si rifiuterà di fare qualsiasi cosa con esso a causa nodevdell'opzione utilizzata durante il montaggio.


Gli stessi motivi si applicano nosuidall'opzione, che dice al sistema operativo di ignorare il bit setuid che normalmente farebbe eseguire un programma con privilegi diversi rispetto a quelli dell'utente. Ad esempio, /usr/bin/sudoha il bit setuid ed è di proprietà di root, quindi avrà sempre gli stessi privilegi di root.


Questa è un'ottima risposta, grazie. Se capisco correttamente le cose, sorge un'altra domanda ... nel forum di supporto di ZEVO: Perché ZEVO ZFS si monta senza l'opzione nodev? (Al momento non ho un disco rigido USB di riserva da dare a HFS Plus da solo.)
Graham Perrin,

@GrahamPerrin: tali opzioni nodevsono disabilitate per impostazione predefinita e devono essere esplicitamente impostate durante il montaggio. L'auto-mounter su disco rimovibile OS X li imposta, lo fanno anche i programmi equivalenti su Linux, ma non verranno impostati durante l'esecuzione mountdal terminale a meno che non vengano aggiunti manualmente -o nodev. (Ciò non pregiudica la sicurezza poiché esso mountstesso richiede i privilegi di root.) Quindi dipende da come è montato il tuo disco ZEVO ZFS.
user1686

Con ZEVO Community Edition 1.1.1, l'importazione è dinamica (automatica) e sembra che il default sia il montaggio automatico senza nodev. Né l'importazione né il mount ZFS richiedono l'autenticazione ... vediamo come vanno le cose nell'area ZEVO.
Graham Perrin,

@grawity: Sbagliato, l' nodevopzione dice di rifiutare le letture e le scritture sui file del dispositivo in modo da interessare anche quella esistente. Puoi ancora crearli.
user2284570,
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.