Poiché l'accesso al dispositivo sottostante è controllato solo dalle autorizzazioni dei file per impostazione predefinita, quindi se la chiavetta USB contiene un filesystem POSIX con un nodo dispositivo scrivibile in tutto il mondo corrispondente a un dispositivo reale nel sistema, è possibile utilizzare quel nodo dispositivo per accedere al corrispondente dispositivo come utente "semplice". Immagina un dispositivo corrispondente a uno dei dispositivi audio, la tua webcam /dev/sda(che è un dispositivo a blocchi piuttosto che un dispositivo a caratteri, ma l'argomento è lo stesso) ...
Ecco un esempio per rendere le cose più chiare. Supponi di voler accedere /dev/sda(quindi puoi praticamente fare tutto quello che vuoi con i contenuti del disco, incluso piantare un programma che ti consenta di diventare root; questo è un dispositivo a blocchi ma il problema è lo stesso con i dispositivi a caratteri). Sul tuo sistema di destinazione, ls -l /dev/sdamostra
brw-rw---- 1 root disk 8, 0 Sep 8 11:25 sda
Questo significa che /dev/sdaè un dispositivo a blocchi ( ball'inizio della riga), con il numero maggiore 8 e il numero minore 0 ( 8, 0il centro della riga). Il dispositivo è accessibile solo a root(lettura / scrittura) e ai membri del diskgruppo (anche lettura / scrittura).
Ora immagina su questo sistema che non puoi diventare, rootma per qualche motivo puoi montare chiavette USB come utente senza nodev. Su un altro sistema, dove ti trovi root, puoi creare un file speciale corrispondente sulla tua chiave USB:
mknod -m 666 usersda b 8 0
Questo creerà un file speciale chiamato usersda, leggibile e scrivibile da tutti.
Installa la chiave sul tuo sistema di destinazione e hey presto, puoi utilizzare il usersdadispositivo allo stesso modo /dev/sda, ma senza restrizioni di accesso ...
(Funzionerà anche con file system crittografati, purché tu sia in grado di accedere al dispositivo di mappatura decrittografato: crea un dispositivo che corrisponda alla /dev/mappervoce appropriata .)