마운트로“그림자”파일에 액세스 할 수 있습니까?


17

Linux에서는 다른 파일 시스템이 서브 디렉토리에 마운트 될 때 "그림자"로 마운트 된 파일 시스템의 파일에 액세스하는 방법이 있습니까?

예 :

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

내 꿈의 해결책은 높은 권한이 필요하지 않거나 특정 파일 시스템에만 국한되지는 않지만 손상된 파일 시스템을 위험에 빠뜨리지 않으면 서 얻을 수있는 모든 스크랩을 취할 것입니다.

답변:


27

mount 명령을 사용하여 기본 파일 시스템에 액세스 할 수 있습니다.

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

이를 수행하는 데있어 손상에는 문제가 없지만 파일 시스템을 마운트하려면 권한이 필요합니다.


+1, 그게 mount --bind답 이라고 생각했습니다 . 그러나 나는 확실하지 않았다.
Dan D.

1
+0.95, 기본적으로 바인딩이 비 재귀적임을 완전히 잊었습니다. 그러나 지난번에 바인드 마운트 / 다른 곳에서는 재부팅하지 않고 마운트를 해제 할 수 없었습니다. 그래도 일부 GUI 구성 요소가있을 수 있습니다. 당신은 그것을 테스트 했습니까?
grawity

감사! 나는 바인드 마운트에 대해
잠시

5

루트가 mount --move있는 경우 마운트 된 파일 시스템을 임시 디렉토리 위에 놓은 다음 나중에 다시 이동할 수 있습니다.

mkdir /bar
mount --move /foo /bar

루트가 있으면 기본 블록 장치 (있는 경우)에 직접 액세스 할 수 있습니다. ext4의 경우 debugfs파일을 내보내는 데 사용할 수 있습니다 .

읽기 전용 액세스는 파일 시스템을 손상시킬 수 없습니다 .


디렉토리에는 핸들 또는 파일 디스크립터가있을 수 있습니다. "현재 디렉토리"도 경로가 아니라 핸들입니다. 디렉토리에 대한 핸들이 있으면 해당 위치가 마운트 된 경우에도 내부 파일에 액세스 할 수 있습니다. 이것은 특별한 권한이 필요하지 않으며 특별한 준비 만 필요합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.