일반 사용자가 암호화된 파일(암호화된 파티션에 위치함)을 보거나 수정할 수 없도록 Linux를 설정하는 동시에 해당 파일에 대한 전체 액세스 권한이 있는 응용 프로그램을 사용할 수 있도록 허용하는 방법이 있습니까? 파일은 액세스할 수 없을 뿐만 아니라 암호화되어야 한다는 점에 유의하세요.
이유: 내 애플리케이션에서 sqlite를 사용하고 싶지만 암호화되지 않았으며 암호화된 블록을 저장하는 것은 적절한 인덱싱 측면에서 좋은 생각이 아닙니다. 그래서 저는 아마도 리눅스가 이 문제를 해결할 수 있을 것이라고 생각했습니다. 아, 그리고 앱이 시스템 설정과 함께 제공되므로 최종 사용자가 파티셔닝 및 설치를 어렵게 할 필요가 없습니다.
답변1
요구사항은 다음과 같습니다.
- 응용 프로그램을 통하지 않고는 어떤 사용자도 파일에 액세스할 수 없습니다.
- 일부 사용자(모두는 아닐 수도 있음)는 응용 프로그램을 사용하여 파일에 액세스할 수 있습니다.
따라서 Shawn의 의견에서 언급한 것처럼 파일은 특수 사용자가 소유해야 하며 mysql
응용 프로그램도 마찬가지로 mysql
.
그런 다음 애플리케이션을 실행할 수 있는 사람을 제한하는 방법이 필요합니다. 이를 수행하는 두 가지 방법이 있습니다.
chmod 4750 app
소유자의 유효한 UID를 사용하여 애플리케이션을 실행할 수 있도록 setuid 비트를 설정하여 애플리케이션 실행이 허용된 사람들의 그룹을 생성할 수 있습니다 . 여기서 애플리케이션의 권한은 입니다-rwsr-x---
.- 를 사용하여 실행할 수
sudo
있으며/etc/sudoers
실행할 수 있는 사람에 대한 제한을 설정할 수 있습니다.