EncFS를 사용하여 특정 사용자나 프로세스가 파일에 액세스할 수 있지만 루트는 액세스할 수 없도록 파일을 암호화합니다.

EncFS를 사용하여 특정 사용자나 프로세스가 파일에 액세스할 수 있지만 루트는 액세스할 수 없도록 파일을 암호화합니다.

암호화된 파일 시스템에 액세스하려는 프로세스가 있습니다. EncFS를 사용하면 매우 쉽게 수행할 수 있지만 이를 위해서는 사용자가 암호화된 파일 시스템을 마운트해야 하므로 마운트에 액세스할 수 있는 사용자에게 데이터에 대한 액세스 권한(예: 루트)을 부여해야 합니다.

프로세스만이 데이터에 접근할 수 있도록 파일 시스템을 마운트하는 것이 가능합니까? 그렇지 않은 경우 암호를 모르는 사람이 데이터에 액세스하는 것을 방지할 수 있는 다른 방법이 있습니까?

답변1

Gilles가 말한 것이 맞습니다. 루트가 마운트에 액세스하는 것을 막을 수는 없습니다. 퓨즈 옵션 없이 마운트에 직접 액세스할 수는 없지만 allow_other언제든지 해당 사용자로 전환할 수 있습니다.

하지만, 프로세스가 현재 작업 디렉터리를 마운트 지점으로 변경한 후 마운트를 게으르게 마운트 해제할 수 있습니다. 프로세스가 마운트 지점 내부에 있으면 지연 마운트 해제를 수행할 수 있습니다. 이렇게 하면 새로운 프로세스가 마운트 지점에 액세스할 수 없게 되지만 내부에서 실행 중이던 프로세스는 계속 액세스할 수 있습니다.


encfs /enc/source /enc/target
( cd /enc/target && some_long_running_process) &
fusermount -uz /enc/target

some_long_running_process, 생성된 모든 하위 프로세스는 마운트 지점에 대한 전체 액세스 권한을 갖습니다. 그러나 해당 프로세스의 하위 프로세스가 아닌 다른 프로세스가 마운트에 액세스하려고 하면 빈 디렉터리만 얻게 됩니다.


마운트 지점을 사용할 수 있는 간단한 창이 있는데, 여기서 다른 것이 디렉터리를 변경할 수 있지만 스크립트로 작성하면 창이 매우 작습니다.

또한 루트가 마운트 지점에 액세스할 수 있는 몇 가지 방법이 있지만 간단하지 않으며매우해킹.

답변2

마운트하는 사용자만 encfs 파일 시스템에 액세스할 수 있습니다. 루트로 실행되는 프로세스라도 "권한 거부" 오류가 발생합니다. 물론 장착 사용자로 전환한 다음 데이터에 액세스할 수도 있습니다.

루트가 데이터에 액세스할 수 없게 만드는 것은 불가능합니다. 정의에 따르면 루트는 전능하며 모든 것에 액세스할 수 있습니다. 신/산타/부모님/…1이 어제 밤에 무엇을 했는지 알지 못하도록 막을 수 없는 것처럼 루트가 파일에 액세스하는 것을 더 이상 막을 수 없습니다. 사용자를 신뢰하지 않는다면 루트로 명령을 실행할 수 있는 권한을 부여하지 마십시오.

¹ 해당되는 것을 선택하세요.

답변3

이 Q&A에 따르면 다음과 같습니다.예상 액세스가 거부된 encf특정 사용자가 마운트를 수행한 경우 루트도 EncFS에 액세스할 수 없는 것 같습니다.

발췌

하지만 일반 사용자를 사용하여 암호화된 디렉터리를 마운트한 다음 sudo를 사용하여 루트로 마운트된 파일을 보려고 하는 것 같습니다. 그것은 작동하지 않으며 encfs의 요점입니다.

귀하의 예에서 cr 디렉토리는 encfs에서 사용하는 저장소입니다. 이 내용은 큰 비밀이 아니며 암호화된 데이터입니다. 이 데이터를 mn에 탑재하여 mn 아래의 파일처럼 사람이 읽을 수 있는 방식으로 해당 내용을 볼 수 있습니다.

cr을 마운트한 사용자만이 mn 내부 내용을 읽을 수 있습니다. 루트조차 할 수 없습니다.

su - <user>그러나 좀 더 능숙한 사용자에게는 루트가 마운트된 EncFS 공유에 액세스할 수 있도록 해당 사용자가 되는 것을 막을 수 있는 방법이 없습니다 .

이 사이트에서 여러 번 언급했듯이 루트가 시스템의 로컬 항목에 액세스하는 것을 막을 수 있는 방법은 없습니다. 이것이 바로 시스템이 작동하는 방식입니다. Windows 시스템의 관리자에 대해서도 마찬가지입니다.

관련 정보