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/sda
mostra
brw-rw---- 1 root disk 8, 0 Sep 8 11:25 sda
Questo significa che /dev/sda
è un dispositivo a blocchi ( b
all'inizio della riga), con il numero maggiore 8 e il numero minore 0 ( 8, 0
il centro della riga). Il dispositivo è accessibile solo a root
(lettura / scrittura) e ai membri del disk
gruppo (anche lettura / scrittura).
Ora immagina su questo sistema che non puoi diventare, root
ma 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 usersda
dispositivo 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/mapper
voce appropriata .)