限制某些文件或文件系统的根访问权限

我想为我的用户在encryption文件系统上存储文件。 每个用户都将拥有自己的文件系统和自己的密钥。 用户能够login到系统并挂载他的文件系统。 当它们被挂载时,甚至目录也不能访问它们。

设置是:

  • LVM – > dm_crypt – > xfs。
  • 当用户login时,他以一种所有者将成为他的方式装载他的文件系统
  • 他可以启动程序,他们将拥有与用户相同的权限,以便他们可以读取文件

但是我希望root不能访问我的用户挂载文件系统。 首先我想写一个VFS内核模块(用内核编译),如果root用户想访问不同用户的文件,则劫持filesystm特定的命令。 问题是一个根可以做这样的事情:

#su -secureuser

并瞧读安装的文件系统。

我被告知要查看posix文件的functionPAMSELinux ,但是我不知道这些,而且我确定,即使有了这些东西,实现我的请求也是不方便的。

以下是更多,但他们即将限制整个根访问: http : //www.centos.org/docs/4/4.5/Security_Guide/s2-wstation-privileges-noroot.html

你有什么想法? 感谢您的答案! 🙂

首先,您必须认识到,即使您限制了root帐户,pipe理员也可以访问物理服务器,并从Live CD更改服务器configuration。 所以你应该首先相信你的pipe理员。

我可以看到一些解决scheme。 没有一个是简单的,但它们是可行的。 他们来了:

  • 使用不同的绑定命名空间。 使用PAM来configuration它们。 您可能需要开发一个PAM模块。
  • SELinux(如Michael Hampton所提到的),AppArmor或其他内核空间的“应用程序防火墙”。
  • Linux容器,每个用户一个。 我认为这是最简单的解决scheme。
  • 虚拟机(XEN,KVM),每个用户一个。
  • 一个LD_PRELOAD库,用来检查FS操作的访问权限(open,getdents)。
  • 开发一个内核模块来完成过滤(类似于SELinux …)

请注意,您将不得不单独限制根访问权限,具体取决于所选的解决scheme。 您还需要限制对原始设备的访问。

您应该能够使用SELinux MLS(多级安全性)策略作为基础,并根据您的需求进行调整。 这不是一个简单的任务,如果你还不知道SELinux,你将不得不学习,或find一个人。

这也不是单人操作的政策,因为它分裂了通常以三种(或更多)方式进行的安全angular色,因此,理想的情况下应该有三个(或更多)人来pipe理系统的各个方面。

在Unix / Linux中,你无法限制root访问用户挂载的文件。 它只是不工作。