특정 사용자나 프로세스는 액세스할 수 있지만 루트는 액세스할 수 없도록 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에 따르면 다음과 같습니다.encfs 예상 액세스가 거부되었습니다.특정 사용자가 설치했다면 루트도 EncFS에 접근할 수 없을 것 같습니다.

발췌

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

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

cr을 마운트한 사용자만이 mn의 내용을 읽을 수 있습니다. 루트도 아닙니다.

su - <user>그러나 좀 더 능숙한 사용자의 경우 루트가 단순히 실행되어 해당 사용자가 되어 마운트된 EncFS 공유에 액세스하는 것을 막을 방법이 없습니다 .

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

관련 정보