일반 셸의 모든 기능을 유지하면서 프로세스별로 폴더를 마운트하는 방법

일반 셸의 모든 기능을 유지하면서 프로세스별로 폴더를 마운트하는 방법

FHS가 아닌 OS(NixOs)에서 FHS OS를 위조하고 "순수성"을 추가하려면 프로세스별로 일부 폴더를 마운트하고 /libNixOs에 존재하지 않는 폴더와 같은 다른 폴더를 덮어써야 합니다. 나는' 특정 응용 프로그램에 대해 이러한 폴더를 제공하고 싶습니다(전역적으로 설치하고 싶지 않습니다). 마찬가지로 이 폴더를 덮어쓰고 싶습니다 /bin. 여기에는 다른 실행 파일만 포함되어 /bin/sh있고 연결하고 싶습니다 /bin/bash.

이상적으로는 적절한 폴더를 마운트/덮어쓰고 일반 쉘과 동일한 기능을 가진 쉘에 드롭하는 명령을 갖고 싶습니다. 특히sudo 또는 일반 명령을 실행하고 fusionmount 명령을 실행할 수 있어야 합니다.(특히 실행 중인 애플리케이션 이미지), 네트워크에 액세스 중...

이상적으로 명령은 다음과 같아야 합니다.루트가 아닌 사용자로 실행. 가능하다면 suid 바이너리 없이도 네임스페이스를 사용하여 작동하게 하고 싶지만 선택의 여지가 없다면 setuid를 사용할 수 있습니다(시스템의 나머지 부분의 보안을 침해하지 않는 경우). 또는 다른 옵션이 없으면 sudo를 사용하십시오.

사용자 네임스페이스 + 마운트 네임스페이스 + chroot를 사용해 보았지만 불행히도 여기서는 네임스페이스가 루트 계정을 숨기기 때문에 sudo 애플리케이션을 실행할 수 없습니다(참조사용자 네임스페이스: 특정 프로그램에 대해서만 폴더를 마운트하는 방법). 다른 도구(예: bubblewrap)는 fusionmount 명령을 실행할 수 없습니다. 다른 해결책이 있나요?

관련 정보