Bir bağla “gölgeli” dosyalara erişmek mümkün müdür?


18

Linux'ta, bir alt dosyaya başka bir dosya sistemi bağlandığında "gölgeli" olan bağlı bir dosya sistemindeki dosyalara erişmenin bir yolu var mı?

Örneğin

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

Hayallerimin çözümü yükseltilmiş izinler gerektirmez veya belirli bir dosya sistemine özgü olmaz, ancak bozuk bir dosya sistemini riske atmadan alabileceğim notları alırım.

Yanıtlar:


28

Temel dosya sistemine erişmek için mount komutunu kullanabilirsiniz.

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

Bunu yapmayla ilgili herhangi bir sorun yoktur, ancak dosya sistemini bağlama izni gerektirir.


+1, mount --bindbunun cevap olduğunu düşündüm . Ama emin değildim.
Dan

1
+0.95, bağların varsayılan olarak yinelemesiz olduğunu tamamen unuttum. Ancak, son kez / başka bir yerde bağladım, yeniden başlatmadan onu taklit edemedim; olsa da bazı GUI bileşeni kapma olabilirdi. Bunu test ettin mi?
user1686

Teşekkürler! Bir saniye boyunca bağ bağları düşündüm, ancak yol adını yeniden yazmaya dayalı olarak çalışacaklarını ve böylece özyinelemeleri gerektiğini
düşündüm

5

Kökünüz varsa mount --move, bağlı dosya sistemini geçici bir dizinin üzerine getirebilir ve daha sonra onu geri taşıyabilirsiniz.

mkdir /bar
mount --move /foo /bar

Kök sahibi olmak, varsa, temeldeki blok cihazlarına doğrudan erişilmesini de sağlar. Ext4 debugfsiçin dosyaları dışa aktarmak için kullanabilirsiniz .

Salt okunur erişim hiçbir zaman dosya sistemini bozamaz.


Dizinler, kendileri için elde edilmiş tanıtıcılara veya dosya tanımlayıcılarına sahip olabilir. "Geçerli dizin" de bir tanıtıcıdır, bir yol değildir. Bir dizinde tanıtıcı varsa, bu konum bağlanmış olsa bile içindeki dosyalara erişebilirsiniz. Bunun özel ayrıcalıklara ihtiyacı yoktur, sadece özel hazırlıklar gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.