설치 소스를 자체적으로 바인딩

설치 소스를 자체적으로 바인딩

mount --bind /dir1 /dir1효과 는 무엇입니까 ? 나는 읽었다https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt하지만 명확한 설명은 하지 않았습니다. 디렉토리뿐만 아니라 파일에서도 작동하는 것 같습니다.

답변1

이것은 일반적인 것과 정확히 동일합니다 mount --bind /dir1 /dir2. 특별한 경우에 대해 알아야 할 것은 그것이 잘 정의되어 있고 무한히 반복되지 않는다는 것입니다.

(예를 들어 파일이 자체 번들 설치가 가능하므로 파일도 자체 번들 설치가 가능합니다.)

이 특별한 사례는 두 가지 이유로 처음에 들리는 것처럼 무의미하지 않습니다.

1. 가능한 작업 제한 등 바인드 마운트 옵션을 설정할 수 있습니다.

이 호출 후에는 두 곳에서 동일한 콘텐츠에 액세스할 수 있습니다. 개별 파일을 (단일 파일에) 다시 마운트하는 것도 가능합니다. 바인드 마운트를 사용하여 일반 디렉터리에서 마운트 지점을 생성할 수도 있습니다. 예:

      mount --bind foo foo

바인드 마운트 호출은 가능한 하위 마운트가 아닌 단일 파일 시스템(의 일부)만 연결합니다. 하위 설치를 포함한 전체 파일 계층 구조는 다음 명령을 사용하여 두 번째 위치에 추가됩니다.

      mount --rbind olddir newdir

파일 시스템 마운트 옵션은 원래 마운트 지점의 옵션과 동일하게 유지됩니다.

v2.27부터 mount(8)을 사용하면 --bind와 함께 관련 옵션을 전달하여 마운트 옵션을 변경할 수 있습니다. 예를 들어:

      mount -o bind,ro foo foo

Linux 커널은 이 기능을 지원하지 않습니다. 이는 추가 mount(2) remount 시스템 호출을 통해 사용자 공간에서 구현됩니다. 이 솔루션은 원자적이지 않습니다.

읽기 전용 바인드 마운트를 생성하는 대체(전통적인) 방법은 다시 마운트 작업을 사용하는 것입니다. 예를 들면 다음과 같습니다.

      mount --bind olddir newdir
      mount -o remount,bind,ro olddir newdir

읽기 전용 바인드는 읽기 전용 마운트 지점(VFS 항목)을 생성하지만 원본 파일 시스템 수퍼블록은 여전히 ​​쓰기 가능합니다. 즉, olddir은 쓰기 가능하지만 newdir은 읽기 전용입니다.

nosuid, nodev, noexec, noatime, nodiratime 및 relatime VFS 항목 플래그는 "remount,bind" 작업을 통해 변경할 수도 있습니다. 설치 옵션을 반복적으로 변경하는 것은 불가능합니다(예: -orbind,ro 사용).

마운트 옵션의 또 다른 용도는 "전파 플래그"를 설정하는 것입니다. 구체적인 설명은 다음과 같습니다 sharedsubtree.txt. 확실히 혼란스러울 수 있습니다. 또한 에 간략하게 설명되어 있습니다 man mount.

제가 제공할 팁은 단 하나뿐입니다. 문서에서는 이동식 장치 설치를 "슬레이브" 설치 네임스페이스로 전파하려면 공유 하위 트리가 필요하다고 주장합니다. 그러나 더 중요한 동기는 다음과 같은 일을 할 수 있다는 것입니다.제거"슬레이브" 설치 네임스페이스에서 샌드박스 프로세스를 시작한 후 이동식 장치입니다.

2. 파일을 이동하거나 연결할 수 없는 경계를 만듭니다.

분명히 이것은 부분적으로 예상됩니다위에 부과된 제한 사항을 우회하지 않으려면 부분적으로 하드 링크가 보안에 좋지 않기 때문에 일부 제한 사항을 적용하는 것이 유용할 수 있습니다..

관련 정보