특정 애플리케이션에 대한 액세스를 유지하면서 Linux에서 데이터를 암호화하는 방법

특정 애플리케이션에 대한 액세스를 유지하면서 Linux에서 데이터를 암호화하는 방법

일반 사용자가 암호화된 파일(암호화된 파티션에 위치함)을 보거나 수정할 수 없도록 Linux를 설정하는 동시에 해당 파일에 대한 전체 액세스 권한이 있는 응용 프로그램을 사용할 수 있도록 허용하는 방법이 있습니까? 파일은 액세스할 수 없을 뿐만 아니라 암호화되어야 한다는 점에 유의하세요.

이유: 내 애플리케이션에서 sqlite를 사용하고 싶지만 암호화되지 않았으며 암호화된 블록을 저장하는 것은 적절한 인덱싱 측면에서 좋은 생각이 아닙니다. 그래서 저는 아마도 리눅스가 이 문제를 해결할 수 있을 것이라고 생각했습니다. 아, 그리고 앱이 시스템 설정과 함께 제공되므로 최종 사용자가 파티셔닝 및 설치를 어렵게 할 필요가 없습니다.

답변1

요구사항은 다음과 같습니다.

  • 응용 프로그램을 통하지 않고는 어떤 사용자도 파일에 액세스할 수 없습니다.
  • 일부 사용자(모두는 아닐 수도 있음)는 응용 프로그램을 사용하여 파일에 액세스할 수 있습니다.

따라서 Shawn의 의견에서 언급한 것처럼 파일은 특수 사용자가 소유해야 하며 mysql응용 프로그램도 마찬가지로 mysql.

그런 다음 애플리케이션을 실행할 수 있는 사람을 제한하는 방법이 필요합니다. 이를 수행하는 두 가지 방법이 있습니다.

  • chmod 4750 app소유자의 유효한 UID를 사용하여 애플리케이션을 실행할 수 있도록 setuid 비트를 설정하여 애플리케이션 실행이 허용된 사람들의 그룹을 생성할 수 있습니다 . 여기서 애플리케이션의 권한은 입니다 -rwsr-x---.
  • 를 사용하여 실행할 수 sudo있으며 /etc/sudoers실행할 수 있는 사람에 대한 제한을 설정할 수 있습니다.

관련 정보