有没有什么方法可以设置Linux,使普通用户无法查看或修改加密文件(可能位于加密分区上),同时允许他使用具有完全访问权限的应用程序到那个文件?请注意,该文件应该被加密,而不仅仅是无法访问。
原因:我想在我的应用程序中使用 sqlite,但它没有加密,并且就正确的索引而言,存储加密的块并不是一个好主意。所以我想也许 Linux 可以解决这个问题。哦,这个应用程序将与设置机器一起提供,因此最终用户不需要搞乱分区和安装。
答案1
要求是:
- 除非通过应用程序,否则任何用户都无法访问该文件。
- 某些用户(大概不是全部)可以使用该应用程序访问该文件。
因此,该文件必须由特殊用户拥有,mysql
如 Shawn 的评论中所述,并且应用程序也必须同样由mysql
. (或者你可以分组进行。)
然后我们需要一种方法来限制谁可以运行该应用程序。我看到有两种方法可以做到这一点。
- 我们可以创建一组被允许运行该应用程序的人,用于
chmod 4750 app
设置 setuid 位,以便他们可以使用所有者的有效 UID 来运行该应用程序。在这里,应用程序的权限将为-rwsr-x---
. - 我们可以使用
sudo
来运行它,并设置/etc/sudoers
限制允许运行它的用户。