Linux fornisce un dispositivo tmpfs che qualsiasi utente può utilizzare, /dev/shm
. Non è montato in una directory specifica per impostazione predefinita, ma puoi comunque usarlo come tale.
Basta creare una directory in /dev/shm
e poi collegalo simbolicamente a dove vuoi. Puoi concedere alla directory creata qualsiasi autorizzazione tu scelga, in modo che altri utenti non possano accedervi.
Questo è un dispositivo supportato da RAM, quindi cosa c'è in memoria per impostazione predefinita. Puoi creare tutte le directory di cui hai bisogno all'interno di /dev/shm
Naturalmente, i file posizionati qui non sopravviveranno a un riavvio e se la tua macchina inizia a scambiare, /dev/shm
non ti aiuterà.
Il Solaris parallelo a /dev/shm
è /tmp
che è una partizione di tipo "swap" e anche basata sulla memoria. Come con /dev/shm
, utenti arbitrari possono creare file in /tmp
su Solaris.
OpenBSD ha anche la capacità di utilizzare un montaggio basato sulla memoria, ma non ne ha uno disponibile per impostazione predefinita. Il comando mount_mfs è disponibile per il super utente.
Non sono sicuro di altri * BSD.
/dev/shm non è adatto per i segreti
...su sistemi con scambio attivo! Le probabilità sono molto alte il tuo computer lo ha abilitato.
C'è un effimero garantito migliore , alternativa standard — ramfs
. Potresti voler usare ramfs
se prevedi di utilizzare lo spazio supportato dalla RAM per temporaneo memorizzare dati sensibili, come chiavi private, portafogli Bitcoin o Ethereum e simili.
ramfs
è meglio di tmpfs
quando i dati devono essere segreti, poiché ramfs
dati mai viene scambiato (salvato su un'unità di archiviazione fisica), mentre tmpfs
potrebbe fatti scambiare. Le terze parti che successivamente ottengono l'accesso root o fisico alla macchina possono quindi ispezionare lo spazio di swap ed estrarre dati sensibili .
La soluzione
Puoi preparare ramfs
mount in modo che qualsiasi utente non privilegiato possa montarlo/smontarlo su richiesta.
Per fare ciò, avrai bisogno di root privilegio, una volta . Chiedi all'amministratore del tuo sistema di configurarlo per te, se non disponi dei privilegi di root.
All'inizio, devi aggiungere una riga al /etc/fstab
. La riga in fstab
potrebbe assomigliare a questo:
none /mnt/ramfs ramfs noauto,user,size=1024M,mode=0770 0 0
/mnt/ramfs
è un punto di montaggio, dove verrà montato il filesystem ramfs. La directory dovrebbe esistere .noauto
L'opzione impedisce che venga montato automaticamente (ad es. all'avvio del sistema).user
lo rende montabile da utenti normali.size
imposta la dimensione di questo "ramdisk" (puoi usareM
eG
qui).mode
è molto importante , con il codice ottale0770
solo root e utente, che hanno montato questo filesystem, saranno in grado di leggere e scrivere su di esso, non gli altri (puoi usare anche un codice diverso a tua scelta, ma assicurati!).
Al termine, qualsiasi utente sarà in grado di montarlo su richiesta.
Una volta che un utente lo monta, nuovi 1024 MB ramfs
il filesystem viene creato e montato in /mnt/ramfs/
. Sarà di proprietà di root:user
. Una volta smontato o riavviato il sistema, questo filesystem basato su RAM svanirà con tutti i suoi dati. Il che è fantastico.
Inoltre, questo filesystem può essere montato da diversi utenti indipendentemente, ma non contemporaneamente , cioè per essere pronto per il montaggio da parte di un utente successivo, l'utente precedente deve smontare questo filesystem. Oppure puoi creare singoli filesystem per ciascun utente.
da montare:
mount /mnt/ramfs/
per smontare:
umount /mnt/ramfs/
P.S. Se stai provando a rsync
file nella root dei ramf appena montati/creati come utente non root, potresti dover affrontare un rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
errore. Questo è del tutto corretto e previsto, perché il tuo utente non possiede la radice del filesystem ram. La soluzione è semplice, basta creare una directory lì, /mnt/ramfs/copied/
ad esempio, e rsync
dentro.
PPS Testato su Debian 9. Abbastanza sicuro che funzionerà anche su Ubuntu.
P.P.P.S. Anche se molto più sicuro, lo storage basato su RAM è ancora vulnerabile ad alcuni attacchi elaborati, come l'attacco con l'avvio a freddo. Quindi, se prendi davvero sul serio la sicurezza dei tuoi dati, assicurati di farlo fisicamente proteggi il tuo PC / laptop, blocca la custodia e le memory stick o, ancora meglio, considera l'utilizzo di un computer con una RAM saldata direttamente nella scheda madre (che è il caso della maggior parte dei laptop ultraportatili di livello superiore). Considera inoltre di spegnere completamente il computer se non intendi utilizzarlo entro un'ora circa. Forse arriva persino a disabilitare del tutto le funzioni di sospensione/ibernazione.
Il tuo sistema potrebbe averne già uno disponibile; i recenti sistemi Linux basati su Glibc hanno sempre un tmpfs montato su /dev/shm
.
Se il tuo sistema non ne ha uno o è troppo piccolo, allora un filesystem non montato da root significa praticamente FUSE. Su Ubuntu, devi essere nel fuse
gruppo per utilizzare FUSE. Esaminando i filesystem FUSE disponibili, vedo solo Ramfuse, che purtroppo è stato abbandonato a monte.