È possibile accedere ai file "ombreggiati" da un mount?


18

In Linux, c'è un modo per accedere ai file su un filesystem montato che sono stati "ombreggiati" quando un altro file system è stato montato su una sottodirectory?

Per esempio

cd /
mkdir /foo
touch /foo/bar
mount /dev/sda1 /foo
# now, can I still get to /foo/bar on the / filesystem?

La soluzione dei miei sogni non richiederebbe autorizzazioni elevate o sarebbe specifica per un determinato file system, ma prenderò tutti gli scarti che posso ottenere senza rischiare un file system danneggiato.

Risposte:


28

Puoi usare il comando mount per accedere al filesystem sottostante.

$ mkdir /mnt/root
$ sudo mount --bind / /mnt/root
$ cat /mnt/root/foo/bar

Non esiste alcun problema con la corruzione nel fare ciò, ma richiede l'autorizzazione per montare il file system.


+1, ho pensato che mount --bindfosse la risposta. Ma non ero sicuro.
Dan D.,

1
+0,95, ho completamente dimenticato che i bind non sono ricorsivi per impostazione predefinita. Tuttavia, l'ultima volta che ho eseguito il bindmount / altrove, non ho potuto smontarlo senza riavviare; potrebbe essere stato un componente della GUI a prenderlo però. L'hai provato?
user1686,

Grazie! Ho pensato ai bind mount per un secondo, ma ho pensato che avrebbero funzionato basandosi sulla riscrittura del nome del percorso e quindi ricorsivi ...
themel

5

Se si dispone di root, è possibile mount --moveil filesystem montato in cima a una directory temporanea, quindi spostarlo indietro in seguito.

mkdir /bar
mount --move /foo /bar

Avere root permette anche di accedere direttamente ai dispositivi a blocchi sottostanti. Per ext4, è possibile utilizzare debugfsper esportare file.

L' accesso in sola lettura non può mai corrompere il filesystem.


Le directory possono avere handle o descrittori di file ottenuti per loro. Anche la "directory corrente" è un handle, non un percorso. Se hai un handle per una directory, puoi accedere ai file all'interno anche se quella posizione è stata montata sopra. Questo non richiede privilegi speciali, solo una preparazione speciale.

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.