特定のアプリケーションへのアクセスを維持しながら、Linuxでデータを暗号化する方法

特定のアプリケーションへのアクセスを維持しながら、Linuxでデータを暗号化する方法

一般ユーザーが暗号化されたファイル(暗号化されたパーティションに配置されている)を表示または変更できないようにLinuxを設定しますが、そのファイルへのフルアクセス権限を持つアプリケーションを使用できるようにする方法はありますか?ファイルにアクセスできないだけでなく暗号化する必要があることに注意してください。

理由:私のアプリケーションでsqliteを使用したいのですが、暗号化されておらず、暗号化されたブロックを保存することは適切なインデックス付けの面では良い考えではありません。だから私はおそらくLinuxがこの問題を解決できると思いました。ああ、アプリはシステム設定に付属しているので、エンドユーザーはパーティション化とインストールを難しくする必要はありません。

答え1

要件は次のとおりです。

  • アプリケーションを介さないと、どのユーザーもファイルにアクセスできません。
  • 一部のユーザー(すべてではなく)は、アプリケーションを使用してファイルにアクセスできます。

したがって、Shawnのコメントで述べたように、ファイルは特別なユーザーが所有する必要があり、mysqlアプリケーションも同様にmysql

その後、アプリケーションを実行できる人を制限する方法が必要です。これを行うには2つの方法があります。

  • chmod 4750 app所有者の有効なUIDを使用してアプリケーションを実行できるようにsetuidビットを設定して、アプリケーションの実行が許可されている人のグループを作成できます。ここでアプリケーションの権限はです-rwsr-x---
  • を使用して実行できsudo/etc/sudoers実行できるユーザーの制限を設定できます。

関連情報