애플리케이션이 볼 수 있는 파일(특히 파일 내용)을 변경할 수 있는 방법이 있나요?
DAC 또는 MAC을 사용하여 파일에 대한 액세스를 차단할 수 있다는 것을 알고 있지만 액세스를 차단하고 싶지는 않습니다. 대신 애플리케이션에서 볼 수 있는 내용을 변경하고 싶습니다. 예를 들어, 애플리케이션을 사용하여 파일에 액세스할 때 /home/user/.profile
브라우저에 입력하지만 애플리케이션이 실제 콘텐츠를 보는 것이 아니라 동일한 파일 경로를 가진 스푸핑된 버전을 보기를 원합니다. 터미널이나 다른 애플리케이션에서 파일을 열면 올바른 내용이 표시되어야 합니다. 이것이 가능한가? 특정 사용자를 위한 콘텐츠 변경까지 확장할 수 있나요?
답변1
Linux 마운트 네임스페이스를 사용하여 파일 시스템에 수정 보기를 설정할 수 있습니다. LXC와 같은 컨테이너 프레임워크는 이를 뒤에서 사용합니다. 셸에서도 쉽게 사용할 수 있지만 설치하려면 루트 액세스가 필요합니다.
unshare -m
mount --make-rprivate /
mount --bind /spoof/x /target/x
sudo -u {YOUR USER} {COMMAND}
바인드 마운트는 원래 경로에 마운트하여 원래 파일 시스템 트리의 일부를 숨기는 데 사용됩니다. mount --make-rprivate
마운트 네임스페이스 간에 새로운 마운트가 전파되는 것을 방지합니다.
pam_namespace
모듈을 사용하여 사용자를 구성하고 자체 마운트 네임스페이스에서 바인드 마운트를 구성할 수 있습니다.